[5] Docker – użycie zewnętrznego magazynu
26 lutego 2021Po usunięciu kontenera dane w nim również zostaną utracone, dlatego konieczne jest użycie zewnętrznego systemu plików w kontenerach jako trwałych magazynów, jeśli zajdzie taka potrzeba.
[1] Zamontuj katalog na hoście Dockera w kontenerze.
# stwórz katalog [root@vlsr01 ~]# mkdir -p /var/lib/docker/disk01 [root@vlsr01 ~]# echo "Magazyn Zewnetrzny" >> /var/lib/docker/disk01/testfile.txt # uruchom kontener z zamontowanym katalogiem w [/mnt] [root@vlsr01 ~]# docker run -it -v /var/lib/docker/disk01:/mnt centos /bin/bash [root@4fd6f5ba3df8 /]# df -hT Filesystem Type Size Used Avail Use% Mounted on overlay overlay 17G 3.1G 14G 19% / tmpfs tmpfs 64M 0 64M 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup shm tmpfs 64M 0 64M 0% /dev/shm /dev/mapper/cs_vlsr01-root xfs 17G 3.1G 14G 19% /mnt tmpfs tmpfs 2.0G 0 2.0G 0% /proc/acpi tmpfs tmpfs 2.0G 0 2.0G 0% /proc/scsi tmpfs tmpfs 2.0G 0 2.0G 0% /sys/firmware [root@4fd6f5ba3df8 /]# cat /mnt/testfile.txt Magazyn Zewnetrzny [root@4fd6f5ba3df8 /]#
[2] Możliwe jest również skonfigurowanie pamięci zewnętrznej za pomocą polecenia Docker Data Volume.
# stwórz volumen [volume01] [root@vlsr01 ~]# docker volume create volume01 volume01 # wyświetl listę volumenów [root@vlsr01 ~]# docker volume ls DRIVER VOLUME NAME local volume01 # wyświetl szczegółowe informacje o [volume01] [root@vlsr01 ~]# docker volume inspect volume01 [ { "CreatedAt": "2021-02-24T21:12:02+01:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/volume01/_data", "Name": "volume01", "Options": {}, "Scope": "local" } ] # uruchom kontener z zamontowanym [volume01] do [/mnt] w kontenerze [root@vlsr01 ~]# docker run -it -v volume01:/mnt centos [root@196db21bb719 /]# df -hT /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/cs_vlsr01-root xfs 17G 3.1G 14G 19% /mnt [root@196db21bb719 /]# echo "Test VOLUMENOW w Dockerze" > /mnt/testfile.txt [root@196db21bb719 /]# exit exit [root@vlsr01 ~]# cat /var/lib/docker/volumes/volume01/_data/testfile.txt Test VOLUMENOW w Dockerze # możliwe jest zamontowanie z innego kontenera [root@vlsr01 ~]# docker run -v volume01:/var/volume01 centos /usr/bin/cat /var/volume01/testfile.txt Test VOLUMENOW w Dockerze # aby usunąć volumeny zrób [root@vlsr01 ~]# docker volume rm volume01 Error response from daemon: remove volume01: volume is in use - [196db21bb719e9bc36a0e6d580f917fabf49bda92923c95201d5b036fd02280d, eb40ced711ff1e68648ace3c907204392bd8a3f53ec16d6245bb42a8b59cc5c2] # jeśli niektóre kontenery używają volumenów, który chcesz usunąć jak powyżej, musisz usunąć docelowe kontenery przed usunięciem volumenów [root@vlsr01 ~]# docker rm eb40ced711ff1e68648ace3c907204392bd8a3f53ec16d6245bb42a8b59cc5c2 eb40ced711ff1e68648ace3c907204392bd8a3f53ec16d6245bb42a8b59cc5c2 [root@vlsr01 ~]# docker rm 196db21bb719e9bc36a0e6d580f917fabf49bda92923c95201d5b036fd02280d 196db21bb719e9bc36a0e6d580f917fabf49bda92923c95201d5b036fd02280d [root@vlsr01 ~]# docker volume rm volume01 volume01