如何在同一主机上为多个开发人员设置多个 docker 容器?

Rey*_*rPM 5 docker docker-compose

我需要使用 Docker 设置一个开发人员框,这意味着我将拥有:

  • 运行相同环境的不同容器
  • 不同的开发人员访问每个容器

这是一个设置,其中多个容器将在“中央服务器”中运行,开发人员将通过 SSH 或 Samba 或任何其他方式(尚未定义)连接到这个“中央服务器”。

以此为一个小例子:

/home/dev1/sources
/home/dev2/sources

cont_dev1 (volumes) => /home/dev1/sources:/var/www/html | port: 8080 | URL: http://dev1.box.com
cont_dev2 (volumes) => /home/dev2/sources:/var/www/html | port: 8081 | URL: http://dev2.box.com
Run Code Online (Sandbox Code Playgroud)

box.com 是分配给“中央服务器”的外部 IP 地址的域。

这背后的想法不是在服务器本身上安装开发工具,这样我们就可以利用 Docker 的优势(在工具之间轻松切换,仅举一个)。

我以前从未这样做过,所以我目前的问题/问题是:

  • 我应该如何在容器上设置网络,以便每个开发人员通过自己的域进行访问?例如:dev1.box.com(将访问 cont_dev1)、dev2.box.com(将访问 cont_dev2)等等
  • 我担心如果我正在运行 Apache|Nginx 网络服务器,我需要将每个 docker 容器映射到不同的端口,或者我错了?

我很确定我的猜测在第二点上是正确的,但对于第一点,我不知道如何实现它。任何例子都会对我有很大帮助,我将不胜感激。

小智 4

您可以使用以下命令为开发人员盒子上的每个开发人员创建一个 docker-machine

$ docker-machine create

(文档: https: //docs.docker.com/machine/reference/create/

如何创建 docker 机器,您可以在这里阅读: https: //docs.docker.com/machine/get-started/

完成此操作后,每个开发人员都可以通过 ssh 连接到他的 docker 机器,方法是使用

$ docker-machine ssh <machineName>

命令。(Docker 文档:https://docs.docker.com/machine/reference/ssh/

此外,应该可以通过使用开发者盒子上的机器,就像他本地的机器一样

$ docker-machine env

命令。(Docker 文档:此处:https: //docs.docker.com/machine/reference/env/

希望对您有所帮助或让您知道您可以做什么。

最好的问候,卡勒