-
Docker网络
Docker容器默认不开放任何端口,即外部不能访问容器内部服务,但容器内部是可以正常访问外部网络服务的。
如果想要实现外部访问容器内部网络服务,可以通过端口映射,将容器所在服务器的公网
ip:port
映射到容器内部端口上。
关于端口映射的详情,参见《以阿里云服务器为例理解docker端口映射》
容器间的相互访问,有三种实现方式:
-
容器链接
容器连接(link)系统是除了端口映射外,另一种跟容器中应用交互的方式。
其会在源容器(db)与接收容器(web)之间穿件一个隧道,接收容器可以看到源容器指定的信息。
其实一个可以将具体的容器连接到一起来进行通信的抽象层。
-
容器的命名
Docker的连接系统会根据容器的名称来进行连接。
--name
用来自定义名称sudo docker run -d --name db training/webapp
可以通过
docker ps
和docker inspect
命令查看容器名字。 -
容器的互联
使用
--link
参数建立互联。sudo docker run -d -P --name web --link db:db training/webapp2 python app.py
如此便是创建了一个名为web的接收容器,并连接到db源容器上。
--link name:alias # name 要连接的容器名字 # alias 连接后的别名
通过
--link
参数,Docker在两个容器之间创建了一个安全的隧道,且不用映射他们的端口到宿主主机上。在前面启动db容器时,并没有使用
-p
或-P
参数,从而避免了暴露数据库端口到外部网络上,增加了容器的安全性。此处:
- 源容器db无法从外界访问
- 接收容器web可以从外界访问
- web可以访问db
-
Reference
理解Docker容器连接实现容器间通信
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/105033146
今日推荐
周排行