gpt4 book ai didi

docker - 如何使用 Jenkins 在远程 docker 主机中运行容器

转载 作者:行者123 更新时间:2023-12-01 15:12:25 25 4
gpt4 key购买 nike

我有两台服务器:

  • 服务器 A:构建安装了 Jenkins 和 Docker 的服务器。
  • 服务器 B:安装了 Docker 的生产服务器。

  • 我想在Server A中构建一个Docker镜像,然后在Server B中运行对应的容器。那么问题来了:

    Jenkins 完成 docker 构建后,从服务器 A 在服务器 B 中运行容器的推荐方法是什么?我是否必须将图像推送到 Docker 集线器以将其拉入服务器 B,或者我可以以某种方式直接传输图像?

    我真的不是在寻找特定的 Jenkins 插件或东西,而是从安全和架构的角度来看,实现这一目标的最佳方法是什么?

    我已经阅读了大量关于此的帖子和 SO 答案,并且已经意识到有很多方法可以做到这一点,但我仍然不确定最终、最常见的方法是什么。我见过这些替代方案:
  • 使用 docker-machine
  • 使用 Docker Restful 远程 API
  • 使用普通 ssh root@server.b "docker run ..."
  • 使用 Docker Swarm(我是 super 菜鸟,所以我仍然不确定这是否适合我的用例)

  • 编辑:

    我在 Digital Ocean 中运行服务器 A 和 B。

    最佳答案

    Docker 镜像可以保存到常规的 tar 存档:

    docker image save -o <FILE> <IMAGE>

    此处的文档: https://docs.docker.com/engine/reference/commandline/image_save/

    然后 scp将此 tar 存档到另一台主机,然后运行 ​​ docker load加载图像:
    docker image load -i <FILE>

    此处的文档: https://docs.docker.com/engine/reference/commandline/image_load/

    这个 save-scp-load方法很少使用。常见的方法是在防火墙后面设置一个私有(private) Docker 注册表。并将图像推送到该私有(private)注册表或从该私有(private)注册表中提取。该文档描述了 how to deploy a container registry .也可以选择第三方提供的注册服务,如 Gitlab's container registry .

    关于docker - 如何使用 Jenkins 在远程 docker 主机中运行容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49472695/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com