1 / 6
文档名称:

docker学习笔记— docker网络总结.doc

格式:doc   大小:14KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

docker学习笔记— docker网络总结.doc

上传人:学习好资料 2021/10/5 文件大小:14 KB

下载得到文件列表

docker学习笔记— docker网络总结.doc

文档介绍

文档介绍:Docker学****笔记— Docker网络总结             
Docker网络跟OpenStack的网络一样,都是一个很有趣的东西。这里对Docker的网络做一个总结。
外部访问容器
有时Docker会运行一些网络服务,如果Docker使用的内部网络,那么我们从本机以外的地方就没法访问服务了。Docker提供了端口映射的功能,将本机的某个端口映射到容器内部开放的端口,因此我们可以通过访问本机的指定端口即可访问容器内部服务了。可以使用-P或者-p进行端口映射。
使用 -P 时,Docker 会随机映射一个端口到内部容器开放的网络端口。
使用 -p 时,可以指定要映射的端口,在一个指定端口上只可以绑定一个容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort。
$ sudo docker run -d -P training/webapp python
$ sudo docker run -d -p 5000:5000 training/webapp python
容器互联
默认情况下,各容器之间是互通的。当使用选项-icc=false重启docker后,容器之间就互相隔离了。容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。
可以通过-link name:alias命令连接指定容器,Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上,从而避免了暴露数据库端口到外部网络上。
使用 –name 选项可以为容器自定义命名,容器的名字必须是唯一的。
先创建一个数据库容器。
$ sudo docker run -d --name db training/postgres
然后创建一个web容器,连接到数据库容器。
$ sudo docker run -d -P --name web --link db:db training/webapp python
Docker会修改web容器的环境变量以及hosts文件来指明其连接的容器信息。
容器配置
Docker使用虚拟文件挂载到容器的3个相关配置文件,实现容器的配置更改。
-h HOSTNAME or –hostname=HOSTNAME 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。
–link=CONTAINER_NAME:ALIAS 选项会在创建容器的时候,添加一个其他容器的主机名到 /etc/hosts 文件中,让新容器的进程可以使用主机名 ALIAS 就可以连接它。
–dns=IP_ADDRESS 添加 DNS 服务器到容器的 /etc/ 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
四种网络模式
Docker提供了四种网络模式:
- host模式,使