docker数据卷管理-06
一、添加一块硬盘
1.1、添加一块50G硬盘,并挂载分区到/data目录
fdisk /dev/sdb
n
w
partprobe
#格式化
mkfs.ext4 /dev/sdb1
#创建挂载点
mkdir -p /data
#设置开机自动挂载
echo "/dev/sdb1 /data ext4 defaults 0 0" >>/etc/fstab
#挂载
mount -a
#查看分区
[root@docker-node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 36G 2.7G 33G 8% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 8.7M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 497M 107M 391M 22% /boot tmpfs 394M 0 394M 0% /run/user/0 /dev/sdb1 50G 53M 47G 1% /data [root@docker-node1 ~]# cd /data/ [root@docker-node1 data]# ll total 16 -rw-r--r--. 1 root root 0 Jun 21 06:28 10.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 1.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 2.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 3.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 4.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 5.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 6.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 7.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 8.jpg -rw-r--r--. 1 root root 0 Jun 21 06:28 9.jpg drwx------. 2 root root 16384 Jun 21 06:26 lost+found
1.2、数据卷,在容器中挂载方法
参数加:-v
[root@docker-node1 ~]# docker run -it --name node --rm -v /data centos bash [root@a11e983acd0d /]# cd [root@a11e983acd0d ~]# df -h Filesystem Size Used Avail Use% Mounted on overlay 36G 2.7G 33G 8% / tmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/centos-root 36G 2.7G 33G 8% /data shm 64M 0 64M 0% /dev/shm tmpfs 2.0G 0 2.0G 0% /proc/scsi tmpfs 2.0G 0 2.0G 0% /sys/firmware [root@a11e983acd0d ~]# cd /data/ [root@a11e983acd0d data]# touch {1..10}.png [root@a11e983acd0d data]# ll total 0 -rw-r--r--. 1 root root 0 Jun 20 22:51 1.png -rw-r--r--. 1 root root 0 Jun 20 22:51 10.png -rw-r--r--. 1 root root 0 Jun 20 22:51 2.png -rw-r--r--. 1 root root 0 Jun 20 22:51 3.png -rw-r--r--. 1 root root 0 Jun 20 22:51 4.png -rw-r--r--. 1 root root 0 Jun 20 22:51 5.png -rw-r--r--. 1 root root 0 Jun 20 22:51 6.png -rw-r--r--. 1 root root 0 Jun 20 22:51 7.png -rw-r--r--. 1 root root 0 Jun 20 22:51 8.png -rw-r--r--. 1 root root 0 Jun 20 22:51 9.png
1.3、挂载opt目录下的docker_test文件 (备注:用法:挂载一些不容易修改的文件)
#创建一个docker_test文件 [root@docker-node1 ~]# cd /opt/ [root@docker-node1 opt]# touch docker_test #挂载这个文件 [root@docker-node1 opt]# docker run -it --name node --rm -v /opt:/opt/ centos bash [root@229423b9bc34 /]# cd /opt/ [root@229423b9bc34 opt]# ls docker_test
1.4、挂载宿主机的/etc/hosts文件
[root@docker-node1 opt]# docker run -it --name node --rm -v /etc/hosts:/opt/hosts/ centos bash [root@26c10964d88c /]# cd /opt/ [root@26c10964d88c opt]# ls hosts [root@26c10964d88c opt]# cat hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
1.5、挂载宿主机的/etc/hosts文件,并设置为只读,加:ro 参数
[root@docker-node1 opt]# docker run -it --name node --rm -v /etc/hosts:/opt/hosts:ro centos bash [root@3c1c9122beda /]# cd /opt/ [root@3c1c9122beda opt]# ll total 4 -rw-r--r--. 1 root root 158 Jun 7 2013 hosts #被设置为只读 [root@3c1c9122beda opt]# echo "1111" >> hosts bash: hosts: Read-only file system
1.6、数据卷管理
[root@docker-node1 ~]# docker run -it --name node -v /opt/:/opt/ centos bash [root@ee1d235d161f /]# df -h Filesystem Size Used Avail Use% Mounted on overlay 36G 2.6G 34G 8% / tmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/centos-root 36G 2.6G 34G 8% /opt shm 64M 0 64M 0% /dev/shm tmpfs 2.0G 0 2.0G 0% /proc/scsi tmpfs 2.0G 0 2.0G 0% /sys/firmware [root@ee1d235d161f /]# cd [root@ee1d235d161f ~]# ls anaconda-ks.cfg
1.7、在容器中,创建过的文件,其它容器也可以使用。
#进入容器,容器必须是启动状态 [root@docker-node1 ~]# docker start node node #查看所有状态 [root@docker-node1 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ee1d235d161f centos "bash" 3 minutes ago Up 3 seconds node 213fcf70e3c2 nginx "nginx -g 'daemon ..." 4 days ago Exited (0) 4 days ago web2 787ef1c1ff44 nginx "nginx -g 'daemon ..." 4 days ago Exited (0) 4 days ago web1 #进入容器 [root@docker-node1 ~]# docker exec -it node bash [root@ee1d235d161f /]# cd /opt/ [root@ee1d235d161f opt]# ls docker_test #新建文件 [root@ee1d235d161f opt]# touch aaa [root@ee1d235d161f opt]# ls aaa docker_test [root@ee1d235d161f opt]# exit exit #再创建一个node1的容器,查看/opt目录,也可以看到上面那个容器,创建的aaa文件。 [root@docker-node1 ~]# docker run -it --name node1 -v /opt/:/opt/ centos bash [root@45a19effc812 /]# cd /opt [root@45a19effc812 opt]# ls aaa docker_test [root@45a19effc812 opt]# exit exit
1.8、删除方法 (备注:加-v参数)
[root@docker-node1 ~]# docker rm -fv node1 node1 [root@docker-node1 ~]# ls anaconda-ks.cfg docker_init.sh