我正在尝试在我的 Windows 10 上通过docker运行官方镜像gitlab/gitlab-ce:latest。
首先我尝试像下面一样运行它并且它工作正常。
docker run --detach \ --hostname gitlab.example.com \
--publish 443:443 --publish 8080:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/ gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
但问题是容器中的更改没有保存。我发现这东西是有体积的。此附加仅适用于 Boot2Docker VM。好的,我成功地从 docker 设置(桌面应用程序)中的主机(窗口)共享了我的磁盘 C:/ 并对其进行了测试。Window 的文件夹共享,我可以在测试容器中看到文件。
现在我正在尝试像这样运行 gitlab 图像:
docker run --detach \ --hostname gitlab.example.com \
--publish 443:443 --publish 8080:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume C:\ Users\Public\Gitlab\config :/etc/gitlab \ …
我想将请求(通过域名)从公共IP转发到docker容器。我的网络如下所示:

它应该像这样工作:
first.com - >“第一个”容器,172.17.0.2/16
mail.first.com - >“第一个邮件”容器,172.17.0.3/16
secondary.com - >“第二个”容器, 172.17.0.4/16
但我只有转发端口的经验。我想我需要根据互联网请求中的域名信息进行条件转发。对于路由器来说是这样的:
if(request.DomainName == "*.first.com" ||
request.DomainName == "*.second.com"
{
forward(request, "10.0.0.10");
}
Run Code Online (Sandbox Code Playgroud)
对于“Docker 主机”机器也类似。
但我找不到此转发的任何示例。我是否误解了应该如何?