docker创建自定义桥
[root@localhost ~]# docker inspect web
...
Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://bxrtqrie.mirror.aliyuncs.com"], //只要不是最后一条记录,后面都要加,号
"bip": "192.168.1.1/24" //修改docker桥
}
[root@localhost ~]# systemctl restart docker //重启docker
[root@localhost ~]# docker ps -a //容器停止
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d7a26862ea35 httpd "httpd-foreground" 2 minutes ago Exited (0) 9 seconds ago web
[root@localhost ~]# docker start web //启动
web
[root@localhost ~]# docker inspect web //ip地址发生改变
"Gateway": "192.168.1.1",
"IPAddress": "192.168.1.2",
[root@localhost ~]# docker rm -f web
web
[root@localhost ~]# docker run -d --name web --restart=always httpd //如果docker重启跟着重启
033d4c6b018e78e1f4b49ab100d815015884b491021e355cad8087d25f6a6502
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
033d4c6b018e httpd "httpd-foreground" 5 seconds ago Up 4 seconds 80/tcp web
[root@localhost ~]# vim /etc/docker/daemon.json
"bip": "192.168.1.1/24" //删除
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker ps //重启后容器自动重启了
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
033d4c6b018e httpd "httpd-foreground" 3 minutes ago Up 4 seconds 80/tcp web
[root@localhost ~]# docker inspect web //修改一次后docker桥地址删掉后不会改变,要重新添加
"Gateway": "192.168.1.1",
"IPAddress": "192.168.1.2",
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://bxrtqrie.mirror.aliyuncs.com"],
"bip":"172.17.0.1/16"
}
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker inspect web
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
docker创建自定义桥
创建一个额外的自定义桥,区别于docker0
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
031d01b3f8c2 bridge bridge local
649a7455b6e0 host host local
acc4255a45df none null local
[root@localhost ~]# docker network create -d bridge --subnet "192.168.1.0/24" --gateway "192.168.1.1" br0 //创建桥-d指定类型,不加默认是bridge类型,
6f39b788975b02ccf026cdb79f1d106a1f287e8c8306273dccc4cc64ae0136c6
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
6f39b788975b br0 bridge local
031d01b3f8c2 bridge bridge local
649a7455b6e0 host host local
acc4255a45df none null local
使用新创建的自定义桥来创建容器:
[root@localhost ~]# docker run -it --rm --network br0 busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:c0:a8:01:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
再创建一个容器,使用默认的bridge桥:
[root@localhost ~]# docker run -it --rm --name b1 busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
17: eth0@if18: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
试想一下,此时的b2与b1能否互相通信?如果不能该如何实现通信?
/ # ping 192.168.1.2 //此时不通
PING 192.168.1.2 (192.168.1.2): 56 data bytes
^C
--- 192.168.1.2 ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss
/ #
[root@localhost ~]# docker network connect br0 b1 //connect让某个容器连到某个网络里面
/ # ip a //添加的网卡是永久的重启docker还是有
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
17: eth0@if18: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
19: eth1@if20: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:c0:a8:01:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.3/24 brd 192.168.1.255 scope global eth1
valid_lft forever preferred_lft forever
/ # ping 192.168.1.2 //此时可以ping通
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: seq=0 ttl=64 time=0.350 ms
64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.193 ms
64 bytes from 192.168.1.2: seq=2 ttl=64 time=0.203 ms
^C
--- 192.168.1.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.193/0.248/0.350 ms
//一台主机可以用两个交换机
[root@localhost ~]# docker network disconnect br0 b1 //断开连接
docker存储卷
部署网站,用存储卷提供网络内容
[root@localhost ~]# ls
9-404.zip abc anaconda-ks.cfg
[root@localhost ~]# cd ..
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost /]# mkdir web
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var web
[root@localhost /]# mv ~/9-404.zip /web
[root@localhost /]# ls web
9-404.zip
[root@localhost /]# dnf -y install unzip
[root@localhost web]# unzip 9-404.zip
[root@localhost web]# ls
9-404 9-404.zip
[root@localhost web]# rm -f 9-404.zip
[root@localhost web]# ls
9-404
[root@localhost web]# mv 9-404/* .
[root@localhost web]# ls
9-404 index.html js 服务器之家.url 精品免费商业源码下载.url
[root@localhost web]# rm -rf 9-404
[root@localhost web]# ls
index.html js 服务器之家.url 精品免费商业源码下载.url
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker run -d --name web -v /web:/usr/local/apache2/htdocs -p 80:80 httpd //把真机上的web目录和容器的网站目录做绑定 -p暴露端口号
c945573f1e2c4aaadaf8c38ccd613132794fe2982ae58641165207835a023f7e
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c945573f1e2c httpd "httpd-foreground" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*