learning_record_doc/docker/无损升级Docker容器的镜像版本.md
2022-04-25 22:28:41 +08:00

2.1 KiB

1.安装pip 用于安装runlike

apt install pip

2.安装runlike工具

pip install runlike

3.查看容器

CONTAINER ID   IMAGE                                                     COMMAND                  CREATED             STATUS                      PORTS                                                                                                                                                 
9ad7de103a10   dashan/blog/vue_web:1.0                                   "/usr/share/nginx/ht…"   8 days ago          Up 8 days                   0.0.0.0:9527->80/tcp, :::9527->80/tcp                                                                                                                 vue_mogu_web

4.停止容器

docker stop 9ad7de103a10

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

run like 9ad7de103a10 输出

docker run --name=vue_mogu_web --hostname=9ad7de103a10 --env=NODE_ENV=production --env=LANG=en_US.UTF-8 --env=TZ=Asia/Shanghai --network=mogu --workdir=/usr/share/nginx/html -p 9527:80 --restart=always --label='com.docker.compose.project.working_dir=/opt/docker-compose/mogu/yaml' --label='maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>' --label='com.docker.compose.project=yaml' --runtime=runc --detach=true dashan/blog/vue_web:1.0 nginx -g 'daemon off;'

6.创建新的容器并继承原有容器配置和数据(确定镜像版本已经升级)

为了避免容器命名冲突,此处需要更改以下容器名称,然后拷贝以上命令即可得到更新镜像后的容器。

docker run --name=new_vue_mogu_web --hostname=9ad7de103a10 --env=NODE_ENV=production --env=LANG=en_US.UTF-8 --env=TZ=Asia/Shanghai --network=mogu --workdir=/usr/share/nginx/html -p 9527:80 --restart=always --label='com.docker.compose.project.working_dir=/opt/docker-compose/mogu/yaml' --label='maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>' --label='com.docker.compose.project=yaml' --runtime=runc --detach=true dashan/blog/vue_web:1.0 nginx -g 'daemon off;'

7.清理旧的容器

docker rm 9ad7de103a10

注:未映射到外部的容器数据可能会丢失