zoukankan      html  css  js  c++  java
  • Docker基础命令

    1、安装Docker:

    1. 安装Docker官方 yum源:

      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      
    2. 安装Docker

      yum install -y docker-ce
      
    3. 设置Docker开机自启动:

      systemctl enable docker
      
    4. 启动Docker服务:

      systemctl start docker
      
    5. 验证Docker是否安装成功:

      docker version
      
    6. 修改Docker镜像仓库:

      # vim /etc/docker/daemon.json
      {
        "registry-mirrors": ["https://d3mf5ikh.mirror.aliyuncs.com/"]
      }
      
    7. 查看Docker的详细信息:

      docker info
      

    2、镜像操作:

    1. 下载镜像:

      docker pull [image_name]
      
    2. 查看本地已下载的镜像:

      docker images
      
    3. 删除镜像:

      docker rmi [image_id]
      docker rmi [image_id]:tags         # 删除指定版本号的镜像
      

    3、容器操作:

    1. 启动容器:

      docker run --name [container_name] -d -p [宿主机port:容器port] -v [宿主机磁盘目录:容器目录] [image_name]
      # 示例如下:
      docker run --name nginx -d -p 8080:80 -v /data:/usr/share/nginx/html nginx
      # -p : 表示端口映射,将容器中的端口映射到宿主机上的指定端口。
      # -v :  表示目录挂载,将容器内的指定目录挂载到宿主机指定目录下。
      # --link: 表示此容器需要连接另一个容器。
      
    2. 查看已启动的容器:

      docker ps -al
      
    3. 停止容器:

      docker stop [container_id]
      
    4. 删除容器:

      docker rm [container_id]         # 需要先stop容器
      docker rm -f [container_id]      # 强制直接删除容器
      
    5. 进入容器内部:

      docker exec -it [container_id] /bin/bash
      # i : 表示标注你输入
      # t : 表示开启一个Terminal终端
      
    6. 查看容器详细信息:

      docker inspect [container_id]
      

    4、网络操作:

    1. 显示已创建的所有网络:

      docker network  ls
      
    2. 不指定网络驱动时默认创建的bridge网络:

      docker network create [network_name]
      
    3. 查看指定网络的内部信息:

      docker network inspect [network_name]
      
    4. 删除指定网络:

      docker network rm [network_name]
      

    5、Dockerfile编写:

    1. Dockerfile编写规则说明:

      # 基础镜像,如果本地没有,会从远程仓库拉取,尽量使用官方的image作为base image
      FROM centos
      # 镜像的制作人
      MAINTAINER "zjg_num01@163.com"
      # 一条RUN就是一个分层,对于复杂的RUN命令。避免无用的分层,多条命令用&&符连接并用反斜线换行,合成一条命令
      RUN yum update && install -y vim 
          Python-dev
      # 类似于linux的cd命令,改变工作目录,没有目录会自动创建,尽量使用绝对路径,不要用 Run cd 增加分层   
      WORKDIR /root
      # 将本地文件添加到镜像根目录并自动解压
      ADD test.tar.gz /
      # 将本地文件拷贝到镜像根目录,等同于上述ADD效果,没有解压功能
      COPY hello /
      
      # ADD与COPY的区别,优先使用COPY命令,ADD除了COPY功能还有解压功能
      
      # 容器对外需要暴露的端口号
      EXPOSE 80
      
      # 定义环境变量
      ENV MYSQL_VERSION 5.6
      
    2. 编写一个简单的Dockerfile示例:

      FROM nginx:1.17.6
      ENV LANG en_US.UTF-8
      ADD index.html /usr/share/nginx/html
      EXPOSE 80
      EXPOSE 443
      
    3. 通过Dockerfile构建Docker镜像:

      docker build -t nginx:0.0.1 .
      # -f : 可以指定要使用的Dockerfile路径.
      # -m : 可以设置内存最大值.
      # -t : 可以指定镜像名称及版本.
      # .  : 指定构建镜像的上下文路径,docker build 会将这个路径下所有的文件都打包上传给Docker引擎
      
    4. 启动镜像:

      docker run -d -p 8080:80 nginx:0.0.1
      

    6、DockerHub:

    1. 登录DockerHub

      # 注册DockerHub后,登录DockerHub ,注意登录时的username是注册的Docker ID
      docker login
      
    2. 标记本地镜像:

      # 标记本地镜像,将本地镜像打tag,也可以理解为重命名
      docker tag [source_images_name]:[source_image_tag] [registryhost]/[image_name]:[image_tag]
      # source_images_name: 表示原始镜像名称.
      # source_image_tag: 表示原始镜像版本,可选参数.
      # registryhost:表示仓库名称,可选参数.
      # image_name:表示仓库内的镜像名称.
      # image_tag: 表示仓库内的镜像版本,可选参数.
      
    3. 推送镜像到DockerHub

      docker push [registryhost]/[image_name]:[image_tag]
      
    4. DockerHub中下载镜像:

      docker pull [registryhost]/[image_name]:[image_tag]
      

    7、DockerCompose部署Spring Boot应用:

    1. 安装DockerCompose

      • 下载docker-compose二进制执行文件:

        sudo curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
        
      • 配置docker-compose二进制文件可执行权限:

        sudo chmod +x /usr/local/bin/docker-compose
        
      • 测试docker-compose是否安装成功:

        docker-compose version
        
    2. 编译Spring Boot

      cd pig/                                      # 进入应用根目录下
      mvn clean package -Dmaven.test.skip=true     # 通过maven编译打包
      
    3. 编写Spring Boot应用的Dockerfile

      FROM java:8
      WORKDIR /gateway-service
      # 相对于父模块的docker-compose文件的相对路径,而不是相对于Dockerfile的相对路径
      ADD ./gateway-service/target/gateway-service.jar ./   
      # 相对于Dockerfile的相对路径
      # ADD target/gateway-service.jar ./   
      EXPOSE 9999
      RUN java -jar gateway-servcice.jar
      
    4. 编写Spring Boot应用docker-compose.yaml

      version: "3"
      services:
        # gateway-sertvice
        gateway-service:
          build:
            context: ./
            dockerfile: ./gateway-service/Dockerfile
          environment:
            - JAVA_OPTS=-Xmx512M -Dspring.profiles.active=dev
          image: microservice/gateway-service:v1.0
          container_name: gateway-service
          hostname: gateway
          restart: always
          ports:
            - "9090:9090"
          volumes:
            - /usr/lcoal/dev/microservice/logs:/home/portal/web/logs/
      
    5. 通过docker-compose构建镜像:

      docker-compose build .
      # 说明:
      #    既然可以通过docker build可以直接操作Dockerfile文件构建镜像,为什么还要通过docker-compose build?
      #    docker-compose.yaml中可以实现模块下多个微服务的镜像构建,通过指定每个微服务Dockerfile位置即可
      #    Dockerfile用于模块下单个微服务的镜像构建
      
    6. 通过docker-compose启动容器:

      docker-compose up -d
      
    7. 通过docker-compose查看容器日志:

      docker-compose logs -f 
      
    8. 通过docker-compose停止容器:

      docker-compose stop        # 只停止容器工作,可以通过docker-compose start 再次启动
      docker-compose down        # 停止容器、删除镜像、删除网络及挂载
      
  • 相关阅读:
    QQ下面功能移动效果
    网页中选择功能
    自定义listview
    android的内存优化分析【转,超级推荐】
    animation的xml定义中的android:interpolator属性(转)
    HOME键与Notification配合使用的bug重现【原创】
    (转载)Android下Affinities和Task(开发者指南)
    职场加薪步步高升的五大法则(转)
    强引用,软引用和弱引用。
    更改字体的ttf。
  • 原文地址:https://www.cnblogs.com/xiaoshuzhagen/p/14711645.html
Copyright © 2011-2022 走看看