改变docker0的网段
[root@localhost ~]# docker run -d --name 123 httpd
f82635cd78acd496519e98bec326536681683613c35eac745a1c3aadbb5ca677
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f82635cd78ac httpd "httpd-foreground" 7 seconds ago Up 6 seconds 80/tcp 123
[root@localhost ~]# docker inspect 123
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://2rdng78w.mirror.aliyuncs.com"],
"bip": "192.168.1.1/24"
}
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker inspect 123
"Gateway": "192.168.1.1",
"IPAddress": "192.168.1.2",
"IPPrefixLen": 24,
docker重启了123容器就停掉了,给他加这一段代码,就不会重启停掉容器
把之前的123容器删掉重新做
[root@localhost ~]# docker run -d --name 123 --restart=always httpd
1ca13f023ad98ba5d27a8f0470ee01d7456e26a519cd65f1c1cd924eb9b4796c
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ca13f023ad9 httpd "httpd-foreground" 7 seconds ago Up 5 seconds
//总是重启
创建网桥
[root@localhost ~]# docker network create -d bridge --subnet "192.168.1.0/24" --gateway "192.168.1.1" qzl
4ce1a69fb4cd1f3c5964a5ef0e4c17f4c6a1976b3d31caa72b40437f1877bf1e
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
a1dec14c081b bridge bridge local
99d7164cf563 host host local
0cbe9be9c451 none null local
4ce1a69fb4cd qzl bridge local
#查看网桥分配的ip
[root@localhost ~]# docker run -it --rm --network qzl 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: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
/ #
创建两个容器不同网段使用网桥互联
[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
19: eth0@if20: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/24 brd 172.17.0.255 scope global eth0
valid_lft forever preferred_lft forever
[root@localhost ~]# docker run -it --rm --network qzl 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
23: eth0@if24: <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 eth0
valid_lft forever preferred_lft forever
给b1容器添加添加qzl网卡
[root@localhost ~]# docker network connect qzl b1 //这个qzl是网桥名
/ # 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
19: eth0@if20: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/24 brd 172.17.0.255 scope global eth0
valid_lft forever preferred_lft forever
21: eth1@if22: <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 eth1
valid_lft forever preferred_lft forever
/ # ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: seq=0 ttl=64 time=0.810 ms
64 bytes from 192.168.1.3: seq=1 ttl=64 time=0.182 ms
//qzl容器可以ping通b1
/ # ping 192.168.1.2
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.271 ms
64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.259 ms
//b1容器也可以ping通qzl
[root@localhost ~]# docker network disconnect qzl b1
//删除网卡
设置永久网卡
[root@localhost ~]# docker run -itd --name b1 busybox sleep 60000
8067692359e54752866a12a45134e9a1ec3ad9fb801f02a3e120bb11364ac262
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8067692359e5 busybox "sleep 60000" 11 seconds ago Up 10 seconds b1
29aefe96c576 busybox "sh" 28 minutes ago Up 28 minutes eager_lumiere
1ca13f023ad9 httpd "httpd-foreground" 58 minutes ago Up 55 minutes 80/tcp 123
[root@localhost ~]# docker exec -it b1 /bin/sh
/ # 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
27: eth0@if28: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/24 brd 172.17.0.255 scope global eth0
valid_lft forever preferred_lft forever
[root@localhost ~]# docker network connect qzl b1
/ # 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
27: eth0@if28: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/24 brd 172.17.0.255 scope global eth0
valid_lft forever preferred_lft forever
29: eth1@if30: <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 eth1
valid_lft forever preferred_lft forever
/ # exit
[root@localhost ~]# docker restart b1
b1
[root@localhost ~]# docker restart docker
Error response from daemon: No such container: docker
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker start b1
b1
[root@localhost ~]# docker exec -it b1 /bin/sh
/ # 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
37: eth0@if38: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/24 brd 172.17.0.255 scope global eth0
valid_lft forever preferred_lft forever
39: eth1@if40: <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 eth1
valid_lft forever preferred_lft forever
/ #
//就算重启网卡也不会掉了
设置镜像数据创建一个新的镜像
[root@localhost ~]# docker run -it --name b1 --rm busybox /bin/sh
/ # ls
bin dev etc home proc root sys tmp usr var
/ # mkdir data
/ # echo "hello world" > data/index.html
/ # ls
bin data dev etc home proc root sys tmp usr var
/ #
/ # cat data/index.html
hello world
/ #
[root@localhost ~]# docker commit -a 'sean <1@2.com>' -c 'CMD ["/bin/sh"]' -p b1 busybox:v0.1 //做一个镜像
sha256:dbadd82aba726640052d43533468e627cde201154e0921d1192fb60c4e1d0e24
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v0.1 dbadd82aba72 About a minute ago 1.24MB
busybox latest beae173ccac6 4 months ago 1.24MB
[root@localhost _data]# docker run -it --name 123 busybox:v0.1
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cat data/index.html
hello world
/ #
//用这个镜像做一个容器,里面有之前添加data
存储卷管理
存储卷的分类
Docker有两种类型的卷,每种类型都在容器中存在一个挂载点,但其在宿主机上的位置有所不同:
Bind mount volume
a volume that points to a user-specified location on the host file system
Docker-managed volume
the Docker daemon creates managed volumes in a portion of the host’s file system that’s owned bye Docker
容器中管理数据主要有两种方式:
数据卷(Data Volumes)
数据卷容器(Data Volumes Containers)
容器Volume使用语法:
Docker-managed volume
docker run -it --name CONTAINER_NAME -v VOLUMEDIR IMAGE_NAME
[root@localhost ~]# docker run -it --rm --name b2 -v /data busybox /bin/sh
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cat data/123
cat: can't open 'data/123': No such file or directory
/ # cat data/abc
/ # rm -f data/abc
/ #
[root@localhost ~]# docker inspect b2
"Source": "/var/lib/docker/volumes/de127a9d46b7616831a91fb508c2055bf60d7b9e546f6b94c79a3af86e5f9ad2/_data",
"Destination": "/data",
[root@localhost ~]# cd /var/lib/docker/volumes/de127a9d46b7616831a91fb508c2055bf60d7b9e546f6b94c79a3af86e5f9ad2/_data
[root@localhost _data]# ls
[root@localhost _data]# touch abc
[root@localhost _data]# ls
abc
[root@localhost _data]# ls
[root@localhost _data]#
//和容器互联,删除容器都会被删除
Bind mount volume
[root@localhost ~]# docker run -it --rm --name b1 -v /qzl:/data busybox
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cd data
/data # ls
/data #
[root@localhost ~]# cd /qzl
[root@localhost qzl]# echo 'hello world' > index.123456
[root@localhost qzl]# ls
index.123456
[root@localhost qzl]# cat index.123456
hello world
/data # ls
index.123456
/data # cat index.123456
hello world
/data # exit
[root@localhost ~]#
[root@localhost ~]# docker run -it --rm --name b1 -v /qzl:/data busybox
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cat data/index.123456
hello world
/ #
//里面文件还在,因为主机的文件还在
利用存储卷提供网址内容
[root@localhost ~]# docker run -d --name web -v /web:/usr/local/apache2/htdocs -p 80:80 httpd
db3190050b79488500eab262fa0dfcae0d0f5c7b7916cf095c5409d1e19f61a7
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
db3190050b79 httpd "httpd-foreground" 8 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
ff1e4405013a httpd "httpd-foreground" 3 minutes ago Up 3 minutes 80/tcp 123
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:80 [::]:*
[root@localhost ~]# ls
公共 桌面
好看的手机充值单页.zip a
模板 anaconda-ks.cfg
视频 initial-setup-ks.cfg
图片 'ў.txt'
文档 ╘╪.txt
下载 ╤╧┬╘╪.url
音乐
[root@localhost ~]# mv 好看的手机充值单页.zip a
[root@localhost ~]# cd a
[root@localhost a]# ls
好看的手机充值单页.zip
[root@localhost a]# unzip 好看的手机充值单页.zip
Archive: 好看的手机充值单页.zip
http://www.zzvips.com
[root@localhost a]# ls
好看的手机充值单页 好看的手机充值单页.zip
[root@localhost a]# mv 好看的手机充值单页/* /web/
[root@localhost a]# cd /web/
[root@localhost web]# ls
服务器之家.url 精品免费商业源码下载.url index.html static
[root@localhost web]#