《Docker……》笔记-6 网络基础配置

来源:互联网 发布:2钻淘宝店铺转让多少钱 编辑:程序博客网 时间:2024/05/22 11:34

第七章 网络基础配置

本章讲解Docker的网络功能,包括端口映射机制将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间镜像快捷的网络通信。

1. 端口映射实现访问容器

从外部访问容器应用

当容器运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数来指定端口映射。
当使用 -P 标记时,Docker会随机映射一个49000~49900的端口至容器内部开放的网络端口。
-p (小写)则可以指定要映射的端口,且在一个指定端口上只可以绑定一个容器。支持的格式有:ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort

映射所有接口地址

使用 hostPort:containerPort 格式将本地的5000端口映射到容器的5000端口。
此时默认会绑定本地所有接口上的所有地址。
多次使用 -p 标记可以绑定多个端口。

映射到指定地址的指定端口

ip:hostPort:containerPort 格式指定映射使用一个特定地址

映射到指定地址的任意端口

ip :: containerPort绑定localhost的任意端口到容器的5000端口,本地主机会自动分配一个端口。
还可以使用 udp 标记来指定udp端口:
$ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

查看映射端口配置

可用 docker port 来查看当前映射的端口配置,也可以查看到绑定的地址
注意: 容器有自己的内部网络和IP地址(使用docker inspect+容器ID可获取所有的变量值)。

2.容器互联实现容器间通信

容器连接系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。

自定义容器命名

连接系统依据容器的名称来执行。
创建容器是,系统默认会分配一个名字,但自定义命名容器有两个好处:
* 自定义命名,比较好记
* 当要连接其他容器时,可作为一个有用的参考点。
使用 –name 标记可为容器自定义命名
使用docker ps或docker inspect 查看容器的名字。
注意: 容器的名称是唯一的。当要使用一个已经使用过的名称时,需要先用docker rm 来删除之前创建的同名容器。
注意: 执行docker run时,--rm 和 -d 参数不能同时使用。

容器互联

使用 --link参数可以让容器之间安全的进行交互。
参数格式:--link name:alias,其中name是要链接的容器的名称,alias是这个连接的别名。
Docker 通过两种方式为容器公开连接信息:
* 环境变量。
* 更新/etc/hosts文件。
使用 env 命令可查看容器的环境变量。
用户可以连接多个子容器到父容器。

0 0
原创粉丝点击