外部访问容器
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。
当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。
使用 docker ps 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。
此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。
$ sudo docker run -d -P training/webapp python app.py
容器访问外部网络
在Linux环境下,
sysctl net.ipv4.ip_forward
若 net.ipv4.ip_forward=1 本地主机开启转发功能;若该值为0,则禁用。亦可以启动docker 服务时指定 --ip_forward=true 。
容器互联
容器的连接(linking)系统是除了端口映射外,另一种跟容器中应用交互的方式。
该系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。
使用 --link 参数可以让容器之间安全的进行交互。下面先创建一个新的数据库容器。
$ sudo docker run -d --name db training/postgres
然后创建一个新的 web 容器,并将它连接到 db 容器
$ sudo docker run -d -P --name web --link db:db training/webapp python app.py
此时,db 容器和 web 容器建立互联关系。
--link 参数的格式为 --link name:alias ,其中 name 是要链接的容器的名称, alias 是这个连接的别名。
使用 docker ps 来查看容器的连接。
注意:这是同一主机下的容器连接,若是不同主机上的容器互联,则需指定主机 IP。
跨主机互联方案将另作篇幅单独叙述,目前的方案有 Ambassador 容器机制、docker-machine 软件工具搭建跨主机容器集群、overlay 网络方案及 macvlan 网络方案等。
---------------------
作者:安心Smile
来源:CSDN
原文:https://blog.csdn.net/ANXIN997483092/article/details/83446402
版权声明:本文为博主原创文章,转载请附上博文链接!
|
|