如何为docker conteiners分配公共IP?

时间:2019-04-28 06:03:03

标签: docker

我想用同一应用程序运行5个docker cointeiner,它使用端口50505,我想将此端口公开给互联网。

我的服务器运行Ubuntu 18.04

已分配的IP

204.12.240.210-214

所以看起来我有4个IP地址

我可以对任何一个都使用SSH,并且可以使用。

现在,我对Docker仍在学习中感到有些新鲜。

任何人都可以命令如何使用该IP创建网络,然后如何使用该IP启动实例?

我相信这是可能的。

Normalli我这样启动应用程序:

docker run -d -P --net = host -v / mnt / chaindata:/ go-matrix / chaindata --name矩阵--restart总是disarmm / matrix

但是当您启动第二个实例时,它将崩溃,因为第一个实例使用了cuz端口

所以我可以用IP来解决这个问题

2 个答案:

答案 0 :(得分:0)

关于Docker似乎没有问题,如果我是您,我会设置Nginx作为代理/负载平衡器,并将流量传递给后端服务,无论它是在Docker还是其他平台上运行的任何服务

您还可以使用Docker创建Nginx

接下来是如何分配IP并找到Nginx正在监听的端口

答案 1 :(得分:0)

说实话,我不知道如何使用--net=host来处理它。

但是,一种可能的解决方案是:不使用host network,而使用default bridge0's bridge network。但是您需要知道所使用的应用程序的端口,并自己公开它。然后,在公开端口时,您可以指定ip。

类似如下:

docker run -d -p 204.12.240.210:80:80 -p 204.12.240.210:8080:8080 disarmm/matrix
docker run -d -p 204.12.240.211:80:80 -p 204.12.240.211:8080:8080 disarmm/matrix

然后,您可以在主机中看到,在具有不同IP的同一主机上打开了两个80/8080端口。

如上所述,限制是:您必须知道确切使用了哪些端口。

有关格式,请参见this