Docsify/常见问题记录/Docker容器的镜像版本无损升级.md

1.7 KiB
Raw Blame History

无损升级Docker容器的镜像版本¶

本文以更新频繁的portainer镜像为例介绍如何使用runlike工具升级已启动容器的镜像。

  1. 查看已启动的容器ID并停止运行

    1. 查看容器

      
      docker ps -a
      

      输出:

      
      CONTAINER ID   IMAGE                   NAMES
      70476c317017   portainer/portainer-ce  portainer
      
    2. 停止容器

      
      docker stop 70476c317017
      
  2. 使用pip安装runlike工具

    
    pip install runlike
    
  3. 使用runlike工具获取容器启动命令并替换

    
    runlike 70476c317017
    

    输出:

    docker run --name=portainer --hostname=70476c317017 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --volume=/var/run/docker.sock:/var/run/docker.sock --volume=portainer_data:/data --volume=/data --workdir=/ -p 8000:8000 -p 9000:9000 --restart=always --runtime=runc --detach=true portainer/portainer-ce
    
  4. 创建新的容器并继承原有容器配置和数据¶ 为了避免容器命名冲突,此处需要更改以下容器名称,然后拷贝以上命令即可得到更新镜像后的容器。

    docker run --name=portainer_new --hostname=70476c317017 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --volume=/var/run/docker.sock:/var/run/docker.sock --volume=portainer_data:/data --volume=/data --workdir=/ -p 8000:8000 -p 9000:9000 --restart=always --runtime=runc --detach=true portainer/portainer-ce
    
  5. 清理旧的容器

    
    docker rm 70476c317017