我正在尝试在docker容器中设置gitlab,我的docker容器在远程CentOS 7服务器上运行。显然,gitlab运行得很好,因为我可以访问容器并执行wget以及服务器。但是,我不能从我的本地机器上做wget。我想配置它,以便我可以从任何地方访问,但我不知道如何进行此配置或它缺少什么。
我创建了这样的docker容器:
sudo docker run --detach --hostname gitlab.example.com --pplish 18080:80 --publish 12222:22 --publish 1443:443 - 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
正如官方文件http://doc.gitlab.com/omnibus/docker/#after-starting-a-container所说的那样。
我想通过http://public_ip:18080访问。我怎样才能做到这一点?
我已经尝试在CentOS中打开端口18080:
$ sudo firewall-cmd --zone = public --add-port = 18080 / tcp --permanent
$ sudo firewall-cmd --reload
但它不起作用(我真的不知道我在做什么)。
容器正在运行并且命令
docker ps -a
显示了这一点:
88510679f781 gitlab / gitlab-ce:latest“/ assets / wrapper”大约一小时前Up大约一小时0.0.0.0:12222->22/tcp,.0.0.0:18080->80/tcp,0.0 .0.0:1443-> 443 / tcp gitlab
我可以使用服务器的私有IP和端口18080从服务器内部和同一群集内的不同计算机访问网页。但是,我无法使用服务器的预配置公共IP访问。
编辑:
正如回复中指出的那样,问题是防火墙不让我们听每个端口。将映射更改为可用端口成为了诀窍