From b466ebdda028264a8e87ee3618935153e00944f0 Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Fri, 22 Sep 2023 16:36:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0docker=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E9=95=9C=E5=83=8F=E7=89=88=E6=9C=AC=E6=97=A0=E6=8D=9F?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 常见问题记录/Docker容器的镜像版本无损升级.md | 60 ++++++++++++++++++++ 常见问题记录/_sidebar.md | 3 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 常见问题记录/Docker容器的镜像版本无损升级.md diff --git a/常见问题记录/Docker容器的镜像版本无损升级.md b/常见问题记录/Docker容器的镜像版本无损升级.md new file mode 100644 index 0000000..62800aa --- /dev/null +++ b/常见问题记录/Docker容器的镜像版本无损升级.md @@ -0,0 +1,60 @@ +# 无损升级Docker容器的镜像版本¶ + +本文以更新频繁的portainer镜像为例,介绍如何使用runlike工具升级已启动容器的镜像。 + +1. 查看已启动的容器ID并停止运行 + 1. 查看容器 + + ```Bash + + docker ps -a + ``` + + 输出: + + ```Bash + + CONTAINER ID IMAGE NAMES + 70476c317017 portainer/portainer-ce portainer + ``` + + 2. 停止容器 + + ```Bash + + docker stop 70476c317017 + ``` + +2. 使用pip安装runlike工具 + + ```Bash + + pip install runlike + ``` + +3. 使用runlike工具获取容器启动命令并替换 + + ```Bash + + runlike 70476c317017 + ``` + + 输出: + + ```Bash + 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. 创建新的容器并继承原有容器配置和数据¶ +为了避免容器命名冲突,此处需要更改以下容器名称,然后拷贝以上命令即可得到更新镜像后的容器。 + + ```Bash + 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. 清理旧的容器 + + ```Bash + + docker rm 70476c317017 + ``` \ No newline at end of file diff --git a/常见问题记录/_sidebar.md b/常见问题记录/_sidebar.md index 09bfaa4..d57a5a1 100644 --- a/常见问题记录/_sidebar.md +++ b/常见问题记录/_sidebar.md @@ -1,2 +1,3 @@ * [主页](ReadMe.md) -* [开发环境搭建](开发环境搭建.md) \ No newline at end of file +* [开发环境搭建](开发环境搭建.md) +* [Docker容器的镜像版本无损升级](Docker容器的镜像版本无损升级.md)