Docker: изменить рабочую директорию

Автор: | 03/15/2017
 

Имеется Docker, установленный на Azure VM.

Задача — добавить диск, перенести /var/lib/docker на этот диск, что бы Docker хранил загруженные образы и остальные данные на отдельном разделе.

Создаём раздел на диске /dev/sdc:

root@hwlezntbao7fc000000:~# sgdisk -n 1 /dev/sdc 
Creating new GPT entries.
The operation has completed successfully.

Форматируем:

root@hwlezntbao7fc000000:~# mkfs.ext4 /dev/sdc1 
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: done                            
Creating filesystem with 131071739 4k blocks and 32768000 inodes
...

Создаём каталог, монтируем:

# mkdir /docker
# mount /dev/sdc1 /docker/

Что бы перенести home Docker-а — создаём конфигурационный файл /etc/docker/daemon.json:

root@hwlezntbao7fc000000:~# cat file 
{
  "graph": "/docker/"
}

Документация — тут>>>.

Перезапускаем, проверяем:

root@hwlezntbao7fc000000:~# ls -l /docker/aufs/layers/
total 0

Выполняем pull:

root@hwlezntbao7fc000000:~# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
693502eb7dfb: Pull complete 
6decb850d2bc: Pull complete 
c3e19f087ed6: Pull complete 
Digest: sha256:52a189e49c0c797cfc5cbfe578c68c225d160fb13a42954144b29af3fe4fe335
Status: Downloaded newer image for nginx:latest

И проверяем ещё раз:

root@hwlezntbao7fc000000:~# ls -l /docker/aufs/layers/
total 8
-rw-r--r-- 1 root root  65 Mar 13 15:48 67b3d665235e6fc550b3bd1a80da6431810101ebda8d5b84a9b615f955338526
-rw-r--r-- 1 root root   0 Mar 13 15:48 d6f9e3f8d84c1db175dd59a24289bd225da698bd9c4e525ce9b0253d80f01041
-rw-r--r-- 1 root root 130 Mar 13 15:48 e0a841409c7f1a485866fd57119016fdfec87030d1e60aa2e53a9d2da30836db

Готово.

Для более старых (?) версий Docker — используйте файл  /etc/default/docker в Debian/Ubuntu, и /etc/sysconfig/docker — для RHEL/CentOS.

Параметр --graph (-g) в DOCKER_OPTS, например:

DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"