Docker

  • Docker安装

    • 卸载旧版本

      1
      2
      3
      4
      5
      6
      7
      8
      sudo yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
    • 设置存储库

      1
      2
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

      可以选择国内的一些镜像源地址:

      1
      sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • 安装 Docker 引擎

      • 安装最新版本

        1
        sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

        如果提示接受 GPG 密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,则接受。

        此命令会安装 Docker,但不会启动 Docker。它还创建一个 docker组,但是默认情况下不会将任何用户添加到该组。

      • 启动Docker

        1
        sudo systemctl start docker
      • 设置Docker开机自启动(可选项)

        1
        sudo systemctl enable docker 
      • 通过运行镜像来验证Docker Engine安装是否成功 hello-world

        1
        sudo docker run hello-world

        此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。

      • 现在已经成功安装并启动了 Docker Engine。

  • Docker语法

    • docker账户管理

      • docker 登录

        我用的是华为云,示例:

        1
        docker login -u cn-east-3@S********AP -p 93*************d4 swr.cn-east-3.myhuaweicloud.com
      • 查看docker是否登录

        1
        cat ~/.docker/config.json

        json文件中,如果key为“auth”的value有值,说明登录成功

      • 退出

        1
        docker logout

        退出之后,auth的值就被清空

    • 华为云推送镜像到仓库

      • 上传镜像

        • commit:将容器打包成镜像

          1
          2
          3
          4
          5
          docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
          示例:
          docker commit -a zenghaojie -m "first commit" zhj-nginx zeng-nginx:v2
          上述示例中:zhj-nginx:容器名(NAMES),zeng-nginx:仓库名(REPOSITORY) v2:版本号(TAG)
          docker images 可以查看,即前两列属性

          OPTIONS:

          -a, –author string Author (e.g., “John Hannibal Smith hannibal@a-team.com“)
          -c, –change list Apply Dockerfile instruction to the created image
          -m, –message string Commit message
          -p, –pause Pause container during commit (default true)

        • 改名

          1
          2
          3
          $ sudo docker tag [{镜像名称}:{版本名称}] swr.cn-east-3.myhuaweicloud.com/{组织名称}/{镜像名称}:{版本名称}
          示例:
          docker tag zeng-nginx:v2 swr.cn-east-3.myhuaweicloud.com/zenghaojie/zeng-nginx:v2
        • 推送

          1
          2
          3
          $ sudo docker push swr.cn-east-3.myhuaweicloud.com/{组织名称}/{镜像名称}:{版本名称}
          示例:
          docker push swr.cn-east-3.myhuaweicloud.com/zenghaojie/zeng-nginx:v2