我想用同一应用程序运行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来解决这个问题
答案 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。