docker存储卷

改变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]# 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值