docker-入门-容器连接

容器基础看这里

容器互联

docker有一个连接系统,允许将多个容器连接在一起,共享连接信息。docker连接会创建一个父子关系,其中父容器可以看到子容器的信息。

容器命名

可以用–name指定名字,取代默认给出的复杂名字。

docker run -d -P --name coco training/webapp python app.py

新建网络

-d是指定网络类型。其中overlay是适用于swarm mode(集群模式的)。

pxy@pxy-pc:~/Desktop$ docker network create -d bridge test-net
ac31b2646640edb5e3740c23d4b4afd5d94f4f6d407ad7b47aca0ea2c7132d35
pxy@pxy-pc:~/Desktop$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
f3ede047ab77        bridge              bridge              local
073b9913697b        host                host                local
7b3fd5378001        none                null                local
ac31b2646640        test-net            bridge              local

创建两个容器

在pxy7896/ubuntu:1214里装ping

docker run -it pxy7896/ubuntu:1214
apt-get update
apt install iputils-ping
exit
docker commit -m="install ping" -a="pxy" 58596d336b75 pxt/ubuntu:1214

打错了。。本来想放在pxy/ubuntu:1214里,现在。。。

pxy@pxy-pc:~/Desktop$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
pxt/ubuntu          1214                e2878e512eef        5 seconds ago       168MB
runoob/centos       6.9                 50439c5cc069        4 hours ago         195MB
...

然后运行两个容器,并加入test-net网络

docker run -itd --name test0 --network test-net pxt/ubuntu:1214 /bin/bash
docker run -itd --name test3 --network test-net pxt/ubuntu:1214 /bin/bash

测试网络连通性

前台进入test0,看看能不能ping通test3:

pxy@pxy-pc:~/Desktop$ docker exec -it test0 /bin/bash
root@a76b22c14fba:/# ping test3
PING test3 (172.18.0.3) 56(84) bytes of data.
64 bytes from test3.test-net (172.18.0.3): icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from test3.test-net (172.18.0.3): icmp_seq=2 ttl=64 time=0.102 ms
64 bytes from test3.test-net (172.18.0.3): icmp_seq=3 ttl=64 time=0.104 ms
64 bytes from test3.test-net (172.18.0.3): icmp_seq=4 ttl=64 time=0.105 ms
^C
--- test3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3048ms
rtt min/avg/max/mdev = 0.053/0.091/0.105/0.021 ms

同理test3也可以ping通test0。这里用exec是因为exit后不会影响容器运行。
如果需要多个容器之间互相连接,需要使用Docker Compose。

配置DNS

在这里插入图片描述
手动配置指定容器

docker run -it --rm -h host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu

–rm 容器退出时自动清理容器内部的文件系统
-h或–hostname=HOSTNAME 设定容器的主机名,它会被写入容器内的/etc/hostname和/etc/hosts
–dns=IP地址 在容器的/etc/resolv.conf中添加DNS服务器,让容器用这个服务器解析所有不在/etc/hosts中的主机名
–dns-search=Domain 设定容器的搜索域。当设定为.example.com时,在搜素一个名为host的主机时,DNS不仅搜索host,还搜索host.example.com
如果在容器启动时没有指定–dns和–dns-search,那么Docker会默认使用宿主主机上的/etc/resolv.conf来配置容器的DNS。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值