栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker存储卷

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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:  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
 图片                    '  Spiral╙╬╧╖╘┤┬ыгиSwift║═SpriteKit▒р╨┤гй-╙╬╧╖╘┤┬ы-╦╪▓─╦╡├ў.txt'
 文档                     ░о╕°═°-╘┤┬ы-├т╖╤╧┬╘╪.txt
 下载                     ╘┤┬ы╦╪▓─├т╖╤╧┬╘╪.url
 音乐
[root@localhost ~]# mv 好看的手机充值单页.zip a
[root@localhost ~]# cd a
[root@localhost a]# ls
好看的手机充值单页.zip
[root@localhost a]# unzip 好看的手机充值单页.zip 
Archive:  好看的手机充值单页.zip
                �q�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�r              
                �U            ������֮��         �U              
   �q�T�T�T�T�T�T��    http://www.zzvips.com     ���T�T�T�T�T�T�r
  �U            �U                               �U            �U 
  �U            �t�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T �s            �U
���U                                                           �U

[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]# 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号