переместить контейнер docker по умолчанию в другое место на диске


Мы пытаемся выяснить, как изменить целевое место контейнера docker. По умолчанию он создается в контейнерах /var/lib/docker/. Допустим, я хотел бы переместить его в /tmp / docker. Все, что я смог найти до сих пор, были Тома docker, но это не делает то, что цель этого использования отличается.

Мы хотим поместить контейнер в оперативную память сервера, чтобы значительно сократить время, затрачиваемое на создание двоичных файлов.

Так ли это возможно?

С уважением, Иордания

4 2

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

  1. Chkconfig docker off

  2. Перезагрузите сервер

  3. Копирование файлов /var / lib/docker в / targetfolder / docker с помощью rsync - a -- sparse -- progress /var / lib/docker / apps / docker

  4. Изменить конфигурацию: / lib / systemd/system / docker.обслуживание ExecStart= / usr / bin/dockerd -g / targetfolder/docker /

  5. МВ /var / lib / docker /var / lib / docker1 (для резервного копирования)

  6. Ln-s / targetfolder / docker /var / lib / docker (необязательно - )

7.chkconfig docker on

8.демон systemctl-перезагрузка

9.systemctl restart docker

  1. запустите старые контейнеры, обратившись к этой команде --> 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