公司网站建设做分录,哈尔滨企业做网站,网站开发计划甘特图,网站首页的概念基本网络功能
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。使用docker network子命令来管理Docker网络。
外部访问容器可通过端口映射实现#xff0c;启动容器时使用-p参数指定映射关系。-p可多次使用来绑定多个端口。使用docker port命令查看当前映射的端…基本网络功能
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。使用docker network子命令来管理Docker网络。
外部访问容器可通过端口映射实现启动容器时使用-p参数指定映射关系。-p可多次使用来绑定多个端口。使用docker port命令查看当前映射的端口配置。
容器互联
可以使用--link参数使容器互联。建议将容器加入自定义的Docker网络来连接多个容器。
新建网络
使用docker network create -d bridge my-net命令创建一个网络其中-d参数指定Docker网络类型有bridge、overlay等。
容器连接网络
运行容器时通过--net参数指定要连接的网络。
高级网络配置
docker网络结构如下图所示 快速配置指南
下面是一个跟 Docker 网络相关的命令列表。其中有些命令选项只有在 Docker 服务启动的时候才能配置 而且不能马上生效。
-b BRIDGE 或 --bridgeBRIDGE 指定容器挂载的网桥--bipCIDR 定制 docker0 的掩码-H SOCKET... 或 --hostSOCKET... Docker 服务端接收命令的通道--icctrue|false 是否支持容器之间进行通信--ip-forwardtrue|false 请看下文容器之间的通信--iptablestrue|false 是否允许 Docker 添加 iptables 规则--mtuBYTES 容器网络中的 MTU
下面2个命令选项既可以在启动服务时指定也可以在启动容器时指定。在 Docker 服务启动的时候指定则会成为默认值后面执行 docker run 时可以覆盖设置的默认值。
--dnsIP_ADDRESS... 使用指定的DNS服务器--dns-searchDOMAIN... 指定DNS搜索域
最后这些选项只有在 docker run 执行时使用 因为它是针对容器的特性内容。
-h HOSTNAME 或 --hostnameHOSTNAME 配置容器主机名--linkCONTAINER_NAME:ALIAS 添加到另一个容器的连接--netbridge|none|container:NAME_or_ID|host 配置容器的桥接模式-p SPEC 或 --publishSPEC 映射容器端口到宿主主机-P or --publish-alltrue|false 映射容器所有端口到宿主主机
配置DNS
配置全部容器的 DNS 可以在 /etc/docker/daemon.json 文件中增加以下内容。
{dns : [114.114.114.114,8.8.8.8]
}
实例
创建一个点到点连接两个容器之间可以直接通信而不通过主句网桥进行桥接解决方法是创建一对peer接口分别放到两个容器中配置成点到点链路类型即可。
启动2个容器网络模式设置为none如下
$ docker run -i -t --rm --netnone base /bin/bash
root1f1f4c1f931a:/#$ docker run -i -t --rm --netnone base /bin/bash
root12e343489d2f:/#
找到进程号 然后创建网络命名空间的跟踪文件。
$ docker inspect -f {{.State.Pid}} 1f1f4c1f931a
2989$ docker inspect -f {{.State.Pid}} 12e343489d2f
3004$ sudo mkdir -p /var/run/netns
$ sudo ln -s /proc/2989/ns/net /var/run/netns/2989
$ sudo ln -s /proc/3004/ns/net /var/run/netns/3004
创建一对 peer 接口 然后配置路由
$ sudo ip link add A type veth peer name B
$ sudo ip link set A netns 2989
$ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A
$ sudo ip netns exec 2989 ip link set A up
$ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A
$ sudo ip link set B netns 3004
$ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B
$ sudo ip netns exec 3004 ip link set B up
$ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B
现在这 2 个容器就可以相互 ping 通 并成功建立连接。