Docker容器仅在网络上

时间:2017-11-30 10:26:55

标签: docker docker-networking docker-network

我使用Docker,我有多个webapps,每个都需要MySQL服务器。实际上每个webapp都使用他自己的桥接网络与他的MySQL服务器进行通信,但每个MySQL服务器使用不同的端口(3306,3307,3308 ......)。

我无法在端口3306上运行它们,因为第一个已经被第一个MySQL webapp使用了。

是否可以在3306上的MySQL服务器上运行所有操作?

我有什么:

| Net1(网桥) | Net2(网桥) | Net3(网桥) | .... |
| -------------------- | ---------------------- | ----- --------------- | ----- |
| Webapp1:80 | Webapp2:8080 | Webapp3:8081 | ...... | | Mysql:3306 | Mysql:3307 | Mysql:3308 | ...... |

我想要的是什么:

| Net1(网桥) | Net2(网桥) | Net3(网桥) | .... |
| -------------------- | ---------------------- | ----- --------------- | ----- |
| Webapp1:80 | Webapp2:8080 | Webapp3:8081 | ...... | | Mysql:3306 | MySQL的:3306 | MySQL的:3306 | ...... |

我如何运行我的容器:

docker network create --driver bridge webapp1net
docker run -d -p 3306:3306\
  --net=webapp1net \
  --net-alias=[webapp1net] \
  -h webapp1-mysql \
  --name webapp1-mysql mysql 

docker run -d -p 127.0.0.1:80:80\
  --net=webapp1net \
  --net-alias=[webapp1net] \
  -h webapp1 \
  --name webapp1 webapp1 

由于

旧帖子:

  

使用 Docker ,我想知道是否可以 公开 一个容器 在网络上,而不在主机上

     

实施例:   我在网络上有3个服务并使用MySQL,但我不想改变MySQL的端口。

     

Net 1:myapp:80(可由localhost访问)& MySQL:3306(仅限网络)

     

Net 2:myapp:8080(可由本地主机访问)& MySQL:3306(仅限网络)

     

     

是否可以通过在0.0.0.0上运行MySQL来执行某些操作?

     

由于

0 个答案:

没有答案