要把现有的 Jenkins 容器推送到一个新的镜像标签,并且重新启动新的容器,你可以按照以下步骤操作:
-
停止当前正在运行的 Jenkins 容器(如果你不想在操作时中断服务,可以跳过此步骤,直接进行下一步):
bashdocker stop 92f98add7db2
-
提交现有的 Jenkins 容器为新的镜像:
bashdocker commit 92f98add7db2 jenkins:20240513
-
启动新的 Jenkins 容器,根据你提供的参数配置:
bashdocker run -d \ --name jenkins-new \ -p 8080:8080 \ -e TZ="Asia/Shanghai" \ -v /mnt/jenkins/.jenkins:/root/.jenkins \ -v /mnt/jenkins/.m2:/root/.m2 \ -v /mnt/jenkins/.npm:/root/.npm \ --ulimit nofile=20480:40960 \ --memory 8g \ jenkins:20240513
这些命令解释如下:
docker stop
用于停止当前运行的容器。docker commit
用于从已有的容器创建一个新的镜像。这里你把标签设为20240513
。docker run
用于启动新的容器,并设置了一些重要的参数:-d
表示后台运行容器。--name
设置容器的名称。-p
映射端口,让外部可以通过主机的 8080 端口访问 Jenkins。-e TZ="Asia/Shanghai"
设置时区为上海。-v
挂载卷,这里挂载了 Jenkins 的配置目录、Maven 的目录和 npm 的目录,以便保持数据持久化。--ulimit nofile=20480:40960
设置文件描述符的软限制和硬限制。--memory 8g
设置容器可使用的最大内存为 8 GB。
这样,你就可以在新的镜像上继续使用 Jenkins 服务,而无需重新配置和安装,同时还可以保持以前的数据和设置。如果需要,你还可以删除旧的容器来释放系统资源:
bash
docker rm 92f98add7db2