容器封装成新镜像及在容器中调用宿主机docker命令
注意要用 普通用户 操作,以免造成不必要的麻烦。
1.使用背景
基于docker部署jenkins,由于前期启动的容器比较简单,到后期需要用到的很多东西都没有挂载,而挂载又需要在启动容器时进行,重新挂载的话,之前做的很多配置,又要重新配置。
想要把当前运行着的容器封装成一个全新的镜像。
2.封装容器
docker commit 命令可以实现上述的需求
docker commit[选项] <源容器ID或源容器名> [新镜像名字:版本号]
选项 说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
2.1查看源容器
docker ps -a
2.2进行封装
docker commit -p 2e04d5689892 testwh1:5000/jenkins:office02
2.3查看镜像
docker images
2.4把新镜像运行成新容器
docker run -itd --name "jenkins" -p 8080:8080 \
-v /home/jenkins_home:/home/jenkins_home \
-v /home/jenkins_home1/:/var/jenkins_home \
-v /run/docker.sock:/var/run/docker.sock \
-v /bin/docker:/bin/docker \
testwh1:5000/jenkins:office02
涉及到的这些目录需要更改属主、属组
使用 普通用户 启动镜像,方便后期管理
3.容器调用宿主机docker命令
-v /run/docker.sock:/var/run/docker.sock
-v /bin/docker:/bin/docker
这两个 是为了 在容器中调用宿主机的docker命令
要给 r+w权限
进入容器及验证
Sun已测