如何使用Jenkins在远程docker主机中运行容器
我有两台服务器:如何使用Jenkins在远程docker主机中运行容器,docker,jenkins,deployment,server,cloud,Docker,Jenkins,Deployment,Server,Cloud,我有两台服务器: 服务器A:构建安装了Jenkins和Docker的服务器 服务器B:已安装Docker的生产服务器 我想在服务器a中构建Docker映像,然后在服务器B中运行相应的容器。问题是: 一旦Jenkins完成docker构建,在服务器B中从服务器a运行容器的推荐方法是什么?我必须将图像推送到Docker hub才能将其拉入服务器B,还是可以直接传输图像? 我并不是在寻找特定的Jenkins插件或其他东西,而是从安全性和体系结构的角度来看,实现这一点的最佳方法是什么 我已经阅读了大
- 服务器A:构建安装了Jenkins和Docker的服务器
- 服务器B:已安装Docker的生产服务器
- 使用
docker机器
- 使用Docker Restful远程API
- 使用普通的
sshroot@server.b“docker run…”
- 使用Docker Swarm(我是超级noob,所以我仍然不确定这是否是我的用例的一个选项)
我在Digital Ocean中运行服务器A和B。Docker映像可以保存到常规的tar存档中:
docker image save -o <FILE> <IMAGE>
此处的文档:
这种
save scp load
方法很少使用。常用的方法是在防火墙后面设置一个私有Docker注册表。并将图像推送到或从该私有注册表中取出。本文件描述了。或者,您可以选择由第三方提供的注册表服务,例如。使用Docker存储库时,您只能推/拉已更改的层。
你可以用。Jenkins HTTP请求插件可用于发出HTTP请求。通过设置Docker_host环境变量,可以直接在远程Docker主机上运行Docker命令。要将环境变量导出到当前shell,请执行以下操作:
export DOCKER_HOST="tcp://your-remote-server.org:2375"
允许TCP通信时,请注意安全问题。
另一种方法是在Jenkins中使用SSH代理插件。谢谢,这很有用。我想知道,这个行业常用的方法是什么?将图像推送到注册表并将其拉入docker主机?或者通过scp将图像从build传输到prod服务器?常用的方法是在防火墙后面设置一个私有Docker注册表。并将图像推送到或从私人注册表中取出。太棒了,非常感谢你。你能用最后那句话补充你的回答吗?我会将其标记为已接受。更新了我的原始答案。
export DOCKER_HOST="tcp://your-remote-server.org:2375"