美文网首页
使用Docker

使用Docker

作者: 奋斗_登 | 来源:发表于2021-05-17 22:07 被阅读0次

    Docker是一个开源的软件部署解决方案和轻量级的应用容器框架,它可以打包、发布、运行任何的应用。即Docker是一个管理容器的构建、传输和部署的工具。
    Docker主要有镜像、容器、仓库几个概念。

    • 镜像
      在设计Docker时,利用Union FS的技术将其设计未分层存储架构。镜像实际是由多层文件系统联合组成的。在构建镜像时,会一层层的构建,前一层是后一层的基础。每一层构建在完成后不会再发生改变,后一层中的任何改变只发生再其自身一层。这种分层存储方式使得Docker镜像易于复用和定制。
    • 容器
      容器也采用分层存储,它本质是系统的进程都运行在自己独立的命名空间中。和镜像的区别在于在于容器的最上面那一层是可读可写的。容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。
    • 仓库
      仓库就是存储镜像文件的服务器,是方便再其它服务器上使用镜像。

    Centos下安装docker

    安装yum-util,是为了使用yum-config-manager工具设置安装源。

    yum install -y yum-utils
    

    添加软件

    #添加docker的安装源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    安装启动

    #先更新YUM包索引
    yum makecache fast
    #安装docker,社区版
    yum -y install docker-ce
    

    配置国内镜像加速器
    在阿里云镜像控制台->镜像工具->镜像加速器查看加速器地址。



    在/etc/docker/目录下创建daemon.json添加如下内容:

    {
      "registry-mirrors": ["https://fon46f0i.mirror.aliyuncs.com"]
    }
    

    载入配置并重启docker

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    #可测试运行hello world
    docker run hello-world
    

    镜像的基本操作

    #查看所有已下载的镜像 
    docker images
    #搜索镜像
    docker search ngixn
    #下载镜像可指定版本eg: docker pull nginx:1.17.8
    docker pull nginx
    #删除镜像 f989k3kdss为docker images命令查询到的IMAGE ID
    docker rmi f989k3kdss
    

    容器操作

    # 查看正在运行的容器
    docker ps
    # 查看所有的容器
    docker ps -a
    # 启动容器 
    #. -d 在后台运行
    #. --name 自定义容器名,-p 用于指定服务器与Docker容器进行端口映射的端口
    docker run -d -p 80:80 nginx
    #-v 使用数据卷,即当容器删除时,数据还依然保存
    docker run --name mysql -v /home/data/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12536 -d mysql:5.7.34
    #停止容器
    docker stop 容器id
    #重启容器
    docker start 容器id
    # 查看mysql容器的Ip等信息
    docker inspect mysql
    # 删除容器 d95d82a7cf72为 CONTAINER ID
    docker rm d95d82a7cf72
    # 删除镜像 
    docker rmi 94fae7da05d6
    # 清理未使用的镜像[1.已停止的容器 container 2.未被任何容器所使用的卷 volume 3.未被任何网络所关联的网络network 4.所有悬空的镜像 image]
    docker system prune
    

    docker在服务器启动时自动启动

    systemctl enable docker.service
    

    docker部署springboot

    1. 将springboot项目打包jar
    2. 编辑dockerfile文件
    FROM openjdk:11.0.11
    VOLUME /tmp
    #作者签名
    MAINTAINER lipandeng
    #简化jar名字路径
    COPY jar/demo-0.0.1-SNAPSHOT.jar /app.jar
    # --spring.profiles.active参数,如无可不填写
    # CMD:在启动容器时才执行,RUN:在构建镜像时执行此行
    CMD java -jar /app.jar --spring.profiles.active=node4
    #设置对外端口8088
    EXPOSE 8088
    
    1. 生成Docker镜像
    #注意.不能丢
    docker build -t eurekaserverdemo .
    
    1. 运行
    #-d 后台运行
    docker run -d -p 8088:8088 eurekaserverdemo
    

    相关文章

      网友评论

          本文标题:使用Docker

          本文链接:https://www.haomeiwen.com/subject/djdsjltx.html