Docker-02-Docker基础之挂载宿主机的目录到容器的目录中

近期遇到了一个问题,创建的Docker容器磁盘空间不够怎么办?当然是挂载宿主机的目录到容器中了。

[root@e41a457a3580 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
overlay                   50G   47G  3.6G  93% /
tmpfs                     64M     0   64M   0% /dev
tmpfs                     16G     0   16G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   47G  3.6G  93% /jason
shm                       64M     0   64M   0% /dev/shm
tmpfs                     16G     0   16G   0% /proc/asound
tmpfs                     16G     0   16G   0% /proc/acpi
tmpfs                     16G     0   16G   0% /proc/scsi
tmpfs                     16G     0   16G   0% /sys/firmware

为了缓解根目录空间不够,我们需要把宿主机的目录,比如/data1/test文件挂载到容器的/data目录下,示例如下,如果宿主机上没有/data1/test目录,那么会自动创建该目录

[root@localhost ~]# docker run -d -p 2325:22 -p 2326:80 -v /data1/test/:/data/ --name test_no_1 centos7 /usr/sbin/sshd -D
3d6bb6e6c4b308fb8fd9b6722d82033aa77a1dc7fdaa09d204962365c9a224fe

其中-p指定映射端口,需要指定多个端口时,可以多次使用-p选项

-v指定目录挂载,其中/data1/test代表宿主机的目录,/data代表容器的目录

[root@localhost ~]# ssh 192.168.0.252 -p 2325
[email protected]'s password: 
Last login: Mon May  6 10:45:39 2019

登录到容器中,查看磁盘信息

[root@3d6bb6e6c4b3 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
overlay                   50G   47G  3.6G  93% /
tmpfs                     64M     0   64M   0% /dev
tmpfs                     16G     0   16G   0% /sys/fs/cgroup
/dev/sdb1                2.8T   29G  2.6T   2% /data
/dev/mapper/centos-root   50G   47G  3.6G  93% /etc/hosts
shm                       64M     0   64M   0% /dev/shm
tmpfs                     16G     0   16G   0% /proc/asound
tmpfs                     16G     0   16G   0% /proc/acpi
tmpfs                     16G     0   16G   0% /proc/scsi
tmpfs                     16G     0   16G   0% /sys/firmware

在宿主机上创建一个文件

[root@localhost test]# echo "这个是在宿主机上创建的文件">test.txt
[root@localhost test]# ll
total 4
-rw-r--r-- 1 root root 40 Jul  2 19:53 test.txt

在容器中查看是否有数据

[root@3d6bb6e6c4b3 ~]# ll /data
total 4
-rw-r--r-- 1 root root 40 Jul  2 19:53 test.txt
[root@3d6bb6e6c4b3 ~]# cat /data/test.txt 
这个是在宿主机上创建的文件

总结:一般挂载目录需要在创建容器的时候挂载,不能创建后再进行挂载。可以采用给容器扩充容量的方式来实现扩容,不过比较复杂,而且在centos7系统上可能会有问题,不推荐

你可能感兴趣的:(Docker,Docker)