Docker 网络基础

来源:互联网 发布:电视剧后期制作软件 编辑:程序博客网 时间:2024/05/16 16:14

       docker的网络,应该是docker的短板了,不过也没有什么是完美的,总归有解决的方式.

  首选docker能做到容器之间的互联,外部访问docker容器内部,当然如果这些都不允许那没法玩了.

外部访问容器

       要让外部也可以访问这些应用,可以通过 -P 或-p 参数来指定端口映射。

       当使用 -P 标记时,docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。使用 docker ps 可以看到本地主机的端口映射详情也可以使用docker logs命令查看应用的信息.

   -p(小写的) 则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 。

注意:

  容器有自己的内部网络和 ip 地址(使用 docker inspect 可以获取所有的变量,docker 还可以有一个可变的网络配置。)

  -p 标记可以多次使用来绑定多个端口

 

容器互联

    容器的连接(linking) 系统是除了端口映射外,另一种跟容器中应用交互的方式。该系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。

    使用 --link 参数可以让容器之间安全的进行交互。

    下面先创建一个新的数据库容器。

  $ sudo docker run -d--name db bemavery/mysql

  容器互联的方式

  $ sudo docker run -d-P --name web --link db:db bemavery/app 命令

    此时,db 容器和 web 容器建立互联关系。

  --link 参数的格式为 --link name:alias ,其中 name 是要链接的容器的名称, alias 是这个连接的别名。使用docker ps 来查看容器的连接

 

  小结:demo方式的容器互联和与网络连接