引子
因为内网网络访问受限,所以准备现在外网启动jenkins的docker,然后把一堆插件都装上 ,再搬移到内网运行,期望插件就都有了。
操作流程
外网主机上
- 启动Jenkins docker
sudo mkdir /var/jenkins_node
docker run -d --name myjenkins -p 9090:8080 -p 50000:50000 -v /var/jenkins_node:/var/jenkins_home jenkins_with_plugin
- 登录http://:9090,按照初始化时候的指导一步一步执行
- 能够正常登录使用后,开始装了很多插件
- 导出docker镜像,然后将tar文件拷贝到内网主机
docker commit myjenkins jenkins_with_plugin
docker save -o jenkins_with_plugin.tar jenkins_with_plugin:latest
内网主机上
- 加载镜像后启动
docker load -i jenkins_with_plugin.tar
docker run -d --name myjenkins -p 9090:8080 -p 50000:50000 -v /var/jenkins_node:/var/jenkins_home jenkins_with_plugin
- 结果发现插件为空!!
- 检查tar文件的md5,搬运过程中文件并没有出错
解决问题
- 因为在启动docker Jenkins的时候,做了挂载,所以在外网宿主机上是可以看到大量插件的
ls -l /var/jenkins_node/plugins
- 由此可见,docker commit的时候,
并没有将这些文件打进去!
- 那就在外网主机上手动
var/jenkins_node$ zip -r jenkins_plugins.zip plugins/
- 将jenkins_plugins.zip拷贝到内网相同目录下解压
- 然后重启内网主机上的Jenkins docker
- 可以看到这些插件已经安装,问题解决!