переместить контейнер docker по умолчанию в другое место на диске
Мы пытаемся выяснить, как изменить целевое место контейнера docker. По умолчанию он создается в контейнерах /var/lib/docker/. Допустим, я хотел бы переместить его в /tmp / docker. Все, что я смог найти до сих пор, были Тома docker, но это не делает то, что цель этого использования отличается.
Мы хотим поместить контейнер в оперативную память сервера, чтобы значительно сократить время, затрачиваемое на создание двоичных файлов.
Так ли это возможно?
С уважением, Иордания
4 ответа:
Там, кажется, есть опция командной строки a-g, я действительно не понимаю, почему она называется graph...
-g, --graph="/var/lib/docker" Path to use as the root of the Docker runtime
Https://docs.docker.com/reference/commandline/cli/
mkdir /tmp/docker && docker -g /tmp/docker ...
См. по @thaJeztah https://github.com/docker/docker/issues/3127
Также можно использовать демона.файл конфигурации json вместо /etc / default / docker. Окно настройки /etc/default/используется только для систем под управлением upstart, а не для систем под управлением systemd, поэтому оно более портативно. Также он позволяет перезагрузить некоторые параметры конфигурации без перезапуска системы. демон;
Https://docs.docker.com/engine/reference/commandline/daemon/#daemon-configuration-file
Например
Я на Ubuntu 16.04.1, но это не должно иметь значения, потому что это кросс-дистрибутивное решение.
Просто поместите этот json в /etc / docker / daemon.json:
{ "graph": "/ path / to / docker" } Работал на меня, и мне не нужно было связываться с выскочкой или systemd.
Мы попытались выполнить следующие шаги, чтобы прикрепить папку контейнера к другой папке:
Остановить службу Docker
Chkconfig docker off
Перезагрузите сервер
Копирование файлов /var / lib/docker в / targetfolder / docker с помощью rsync - a -- sparse -- progress /var / lib/docker / apps / docker
Изменить конфигурацию: / lib / systemd/system / docker.обслуживание ExecStart= / usr / bin/dockerd -g / targetfolder/docker /
МВ /var / lib / docker /var / lib / docker1 (для резервного копирования)
Ln-s / targetfolder / docker /var / lib / docker (необязательно - )
7.chkconfig docker on
8.демон systemctl-перезагрузка
9.systemctl restart docker
- запустите старые контейнеры, обратившись к этой команде --> docker ps-a
Остановить службу docker:
service docker stop
Переместите папку containers на ssd:
mv /var/lib/docker/containers /mnt/ssd_example/
Создать символическую ссылку на папку контейнера docker по умолчанию:
ln -s /mnt/ssd_example/containers/ /var/lib/docker/containers
Запуск службы docker:
service docker start