Docker公开端口

我可以公开不同的docker集装箱点到主机上的同一个HTTP端口吗?

docker container run --publish 80:80 -d -it --name wp wordpress docker container run --publish 90:80 -d -it --name ci jenkins docker container run --publish 100:80 -d -it --name gitlab gitlab/gitlab-ce 

使用该命令,您不在主机上使用相同的端口。 -p的命名是“hostPort:containerPort”,这样你就可以将容器的端口80全部映射到端口80,90和100的主机上。

无论如何,回答你的问题可能的冲突。 首先,你的命令应该是:

 docker container run --publish 80:80 -d -it --name wp wordpress docker container run --publish 80:80 -d -it --name ci jenkins docker container run --publish 80:80 -d -it --name gitlab gitlab/gitlab-ce 

这样,你可以做这个命令,但是你可能会得到一个错误,说Bind for 0.0.0.0:80 failed: port is already allocated.

无论如何,在docker允许没有错误的假设情况下…你映射的第一个是哪个工作,因为在“docker运行”命令有iptables命令打开端口从容器到主机和iptables规则工作在“首配是哪个作品”的风格。 所以在这种情况下你将有3个iptables规则,但是其中一个将是第一个。