learning_record_doc/docker/无损升级Docker容器的镜像版本.md

29 lines
2.1 KiB
Markdown
Raw Normal View History

2022-04-25 22:28:41 +08:00
### 1.安装pip 用于安装runlike
`apt install pip`
### 2.安装runlike工具
`pip install runlike`
### 3.查看容器
``` sh
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`
输出
```sh
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.创建新的容器并继承原有容器配置和数据(确定镜像版本已经升级)
为了避免容器命名冲突,此处需要更改以下容器名称,然后拷贝以上命令即可得到更新镜像后的容器。
```sh
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`
> 注:未映射到外部的容器数据可能会丢失