如何使用 jenkins 的远程 docker 服务器?

How to use a remote docker server from jenkins?

我有 2 台服务器,1 台 Linux 2 台带有 Jenkins 运行 的 AMI 和一台带有 Docker 运行.

的 RHEL

我想配置 Jenkins 以便在 Docker 服务器上构建和部署应用程序。如果我在 Docker 服务器上克隆我的存储库,我是 运行 docker-compose build 然后 docker-compose up 并且一切正常。

我找到了一些关于在 jenkins 中使用远程 docker 服务器的文档,但它不起作用。 Docker API 已经打开。

严格来说,您可以连接到远程 Docker 守护进程,方法是启用 Remote API over TCP and using the docker client by setting the DOCKER_HOST environment variable. I would also suggest you configure encryption and authentication 以具有额外的安全层,并且如果您可以将其限制为只能从您的 Jenkins Slaves 访问。

但正如 David Maze 的评论所述,我认为这不是部署容器的最佳方法,因为它会带来一些安全风险,可能会危及您的服务器。

我建议,如果您计划 运行 生产工作负载,并且您需要一个完整的管道来管理容器上应用程序 运行 的生命周期,您可以研究 Docker Swarm or Kubernetes 作为它们是更适合实现这一目标的替代方案。