需要知道的几个docker命令

安装

  • 第一步:上传docker-20.10.8.tar/data/

  • 第二步:创建docker数据目录

[root@SZD-L0519334 ~]# mkdir -p  /data/docker_lib/
  • 第三步:创建docker服务配置

    # 文件目录定义
    dockerServiceFile="/etc/systemd/system/docker.service"
    # 写入内容
    echo -e "[Unit]"                                                                                 > $dockerServiceFile
    echo -e "Description=Docker Application Container Engine"                                       >> $dockerServiceFile
    echo -e "Documentation=https://docs.docker.com"                                                 >> $dockerServiceFile
    echo -e "After=network-online.target firewalld.service"                                         >> $dockerServiceFile
    echo -e "Wants=network-online.target"                                                           >> $dockerServiceFile
    echo -e "[Service]"                                                                             >> $dockerServiceFile
    echo -e "Type=notify"                                                                           >> $dockerServiceFile
    echo -e "# the default is not to use systemd for cgroups because the delegate issues still"     >> $dockerServiceFile
    echo -e "# exists and systemd currently does not support the cgroup feature set required"       >> $dockerServiceFile
    echo -e "# for containers run by docker"                                                        >> $dockerServiceFile
    echo -e "ExecStart=/usr/bin/dockerd --data-root=/data/docker_lib"                               >> $dockerServiceFile
    echo -e "ExecReload=/bin/kill -s HUP $MAINPID"                                                  >> $dockerServiceFile
    echo -e "# Having non-zero Limit*s causes performance problems due to accounting overhead"      >> $dockerServiceFile
    echo -e "# in the kernel. We recommend using cgroups to do container-local accounting."         >> $dockerServiceFile
    echo -e "LimitNOFILE=infinity"                                                                  >> $dockerServiceFile
    echo -e "LimitNPROC=infinity"                                                                   >> $dockerServiceFile
    echo -e "LimitCORE=infinity"                                                                    >> $dockerServiceFile
    echo -e "# Uncomment TasksMax if your systemd version supports it."                             >> $dockerServiceFile
    echo -e "# Only systemd 226 and above support this version."                                    >> $dockerServiceFile
    echo -e "#TasksMax=infinity"                                                                    >> $dockerServiceFile
    echo -e "TimeoutStartSec=0"                                                                     >> $dockerServiceFile
    echo -e "# set delegate yes so that systemd does not reset the cgroups of docker containers"    >> $dockerServiceFile
    echo -e "Delegate=yes"                                                                          >> $dockerServiceFile
    echo -e "# kill only the docker process, not all processes in the cgroup"                       >> $dockerServiceFile
    echo -e "KillMode=process"                                                                      >> $dockerServiceFile
    echo -e "# restart the docker process if it exits prematurely"                                  >> $dockerServiceFile
    echo -e "Restart=on-failure"                                                                    >> $dockerServiceFile
    echo -e "StartLimitBurst=3"                                                                     >> $dockerServiceFile
    echo -e "StartLimitInterval=60s"                                                                >> $dockerServiceFile
    echo -e "[Install]"                                                                             >> $dockerServiceFile
    echo -e "WantedBy=multi-user.target"                                                            >> $dockerServiceFile
    # 添加可执行文件
    chmod +x $dockerServiceFile
    
  • 第四步:安装docker

    # 解压
    [root@SZD-L0519334 ~]#  cd /data;tar -xvf docker-20.10.8.tar -C /usr/bin
    
  • 第五步:重新加载配置文件 #启动Docker

    [root@SZD-L0519334 data]# systemctl stop docker&&systemctl daemon-reload&&systemctl start docker
    
  • 第八步:设置开机自启

    [root@SZD-L0519334 data]# systemctl enable docker.service         
    

常规操作

  • docker自身

    # 启动docker
    systemctl start docker
    
    # 停止docker
    systemctl stop docker
    
    # 查看状态
    systemctl status docker
    
    # 查看Docker版本
    [root@SZD-L0519334 data]# docker -v
    
  • 镜像相关操作

    # 列出所有镜像
    docker images
    
    # 列出所有名字包含test1关键词的镜像
    docker images|grep 'test1'
    
    # 列出所有名字包含关键词 test1或test2 的镜像
    docker images|grep -E 'test1|test2'
    
    # 列出所有名字不包含test2关键词的镜像
    docker images|grep -v 'test2'
    
    # 删除docker 中的所有镜像
    docker rmi $(docker images -q)
    docker rmi $(docker images |awk '{print $3}')
    
    # 删除docker 中含有关键词(k8s4)的的所有镜像
    docker rmi $(docker images |grep k8s4|awk '{print $3}')
    
    # 删除所有不使用的镜像
    docker image prune -f -a
    
    # 加载镜像
    docker load -i test.tar.gz
    
    # 修改镜像tag
    docker tag test:tag1 test:tag2
    
    # 镜像打包
    docker save test:tag1| gzip > test_tag1.tar.gz
    
  • 容器相关操作

    # 列出运行中容器ID
    docker ps
    
    # 列出所有容器
    docker ps -a
    
    # 列出所有容器ID
    docker ps -aq
    
    # 列出运行中容器ID
    docker ps -q
    
    # 停止容器
    docker stop 容器id
    docker stop 容器名:容器tag
    
    # 删除容器 
    docker rm 容器id
    docker rm 容器名:容器tag
    
    # 停止所有的容器
    docker stop $(docker ps -aq)
    
    # 删除所有容器 
    docker rm $(docker ps -aq)
    
    # 设置容器自启动(kill 进程后会自启,docker stop 后不会自启)
    docker update --restart=always 容器ID
    
    # 关闭容器自启动
    docker update --restart=no 容器ID
    
    # 删除所有停止的容器
    docker container prune -f
    
    # 进入容器
    sudo docker exec -it 容器ID /bin/bash
    
    # 退出容器
    exit
    
  • 清理

    # 清理未启动的容器和无用的镜像
    docker system prune -a -f
    

镜像迁移

  • 第一步:连接镜像仓库下拉镜像

    # 连接仓库 语法
    docker login -u [用户名] -p [密码] [仓库地址]
    # 连接仓库 示例
    docker login -u XIAOLI -p 123456 pase-hub.test.com.cn
    
    # 拉取镜像 语法
    docker pull [仓库地址]/[仓库]/[镜像名]:[镜像版本号]
    # 拉取镜像 示例
    docker pull pase-hub.test.com.cn/p0069/test:DEV-HRX-SRCB-LSRC2.0.20211230B19
    
  • 第二步:镜像打包

    # 压缩方式 语法
    docker save [镜像名]:[镜像版本号] | gzip > [镜像名].tar.gz
    #  压缩方式  示例
    docker save test:DEV-HRX-SRCB-LSRC2.0.20211230B19 | gzip > test.tar.gz
    
    # 非压缩方式 语法
    docker save [镜像名]:[镜像版本号]  > [镜像名].tar.gz
    # 非压缩方式 示例
    docker save test:DEV-HRX-SRCB-LSRC2.0.20211230B19 > d:/test.tar
    
  • 第三步:镜像转移(镜像文件copy)

  • 第四步:目标机加载镜像

    # 语法
    docker load -i [镜像名].tar.gz
    # 示例
    docker load -i test.tar.gz
    docker load -i test.tar
    
  • 第五步:修改tag添加目标镜像仓库地址*

    # 语法
    docker tag [镜像名]:[镜像版本号] [目标仓库地址]/[目标仓库名]/[镜像名]:[镜像版本号]
    # 示例
    docker tag testRegistryAddress1/Registry1/testImage:tag1 registry2.qq.com.cn/Registry2/testImage:tag1
    
  • 第六步:把镜像推到目标镜像仓库

    # 登录 语法
    docker login -u [客户仓库用户名] -p [客户仓库密码] [客户仓库地址]
    # 登录示例
    docker login -u testUser -p 12345678 registry2.qq.com.cn
    
    # 推送 语法
    docker push [客户仓库地址]/[客户仓库名]/[镜像名]:[镜像版本号]
    # 推送 示例	
    docker push registry2.qq.com.cn/Registry2/testImage:tag1
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值