Как изменить расположение файла с носком Docker?

Хотите знать, как изменить путь к файлу docker.sock?


Что такое Docker Socket?

Файл сокета докера находится по адресу /var/run/docker.sock

По умолчанию он используется для связи с главным демоном (процессом) Docker. Это точка входа для Docker API. Этот сокет по умолчанию используется интерфейсом командной строки Docker для выполнения команд Docker..

Позвольте мне показать вам, как изменить расположение файла носка докера.

Стоп Докер

Во-первых, если в вашей системе запущена служба Docker, остановите ее. Чтобы подтвердить, что он остановился, выполните команду статуса.

[Электронная почта защищена]: ~ $ sudo остановка службы
[Электронная почта защищена]: ~ $ sudo сервисный докер статус
● docker.service – механизм контейнера приложений Docker
Загружен: загружен (/lib/systemd/system/docker.service; включен; предустановка поставщика: включена)
Активен: неактивен (мертв) с Сб 2019-11-23 15:37:00 EST; 4 с. Назад
Документы: https://docs.docker.com
Процесс: 1474 ExecStart = / usr / bin / dockerd -H fd: // –containerd = / run / containerd / containerd.sock (код = выход, статус = 0 / УСПЕХ)
Основной PID: 1474 (код = выход, статус = 0 / УСПЕХ)

10 ноября 01:56:49 geekflare dockerd [1474]: время ="2019-11-10T01: 56: 49-05: 00" уровень = ошибка msg ="2019/11/10 06:56:49 Ввод go-plugins-helper
10 ноября 01:56:49 geekflare dockerd [1474]: время ="2019-11-10T01: 56: 49-05: 00" уровень = ошибка msg ="время = \"2019-11-10T06: 56: 49Z \" level = Debug MSG =
10 ноября 01:56:49 geekflare dockerd [1474]: время ="2019-11-10T01: 56: 49-05: 00" уровень = ошибка msg ="время = \"2019-11-10T06: 56: 49Z \" уровень = ошибка msg =
10 ноября 01:57:23 geekflare dockerd [1474]: время ="2019-11-10T01: 57: 23.635519865-05: 00" уровень = информация сообщения ="Контейнер 3141793b98f315dc90a57d81006
10 ноября 01:57:24 geekflare dockerd [1474]: время ="2019-11-10T01: 57: 24.091797103-05: 00" уровень = информация сообщения ="игнорирование события" модуль = libcontainerd
23 ноября, 15:36:56 geekflare systemd [1]: остановка механизма контейнера приложений Docker…
23 ноября 15:36:56 geekflare dockerd [1474]: время ="2019-11-23T15: 36: 56.992795411-05: 00" уровень = информация сообщения ="Обработка сигнала прекращена"
23 ноября, 15:36:58 geekflare dockerd [1474]: время ="2019-11-23T15: 36: 58.234014533-05: 00" уровень = информация сообщения ="игнорирование события" модуль = libcontainerd
23 ноября, 15:37 geekflare dockerd [1474]: время ="2019-11-23T15: 37: 00.403572098-05: 00" уровень = информация сообщения ="игнорирование события" модуль = libcontainerd
23 ноября, 15:37 geekflare systemd [1]: остановлен механизм контейнера приложений Docker.

Отредактируйте docker.conf и docker.socket

Далее я меняю путь с /var/run/docker.sock на /home/geekflare/docker.sock

  • Отредактируйте файл docker.conf в каталоге / etc / init / с новым расположением. Вам просто нужно отредактировать одну строку с путем DOCKER_SOCKET.

[Электронная почта защищена]: ~ $ sudo gedit /etc/init/docker.conf

описание "Docker демон"

начать (файловая система и сетевое устройство IFACE! = lo)
остановитесь на уровне выполнения [! 2345]

предел нофила 524288 1048576

# Наличие ненулевых лимитов приводит к проблемам с производительностью из-за накладных расходов
# в ядре. Мы рекомендуем использовать cgroups для ведения учета в контейнерах.
лимит nproc безлимитный безлимитный

респаун

перерыв 20

предстартовый скрипт
# см. также https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
if grep -v ‘^ #’ / etc / fstab | grep -q cgroup \
|| [! -e / proc / cgroups] \
|| [! -d / sys / fs / cgroup]; тогда
выход 0
фи
если ! точка монтирования -q / sys / fs / cgroup; тогда
mount -t tmpfs -o uid = 0, gid = 0, mode = 0755 cgroup / sys / fs / cgroup
фи
(
cd / sys / fs / cgroup
для sys в $ (awk ‘! / ^ # / {if ($ 4 == 1) print $ 1}’ / proc / cgroups); делать
mkdir -p $ sys
если ! точка монтирования -q $ sys; тогда
если ! mount -n -t cgroup -o $ sys cgroup $ sys; тогда
rmdir $ sys || правда
фи
фи
сделанный
)
конец сценария

скрипт
# измените их в / etc / default / $ UPSTART_JOB (/ etc / default / docker)
DOCKERD = / USR / бен / dockerd
DOCKER_OPTS =
если [-f / etc / default / $ UPSTART_JOB]; тогда
. / И т.д. / по умолчанию / $ UPSTART_JOB
фи
Exec "$ DOCKERD" $ DOCKER_OPTS –raw-logs
конец сценария

# Не излучайте "начал" событие, пока docker.sock не будет готов.
# См. Https://github.com/docker/docker/issues/6647
сценарий после запуска
DOCKER_OPTS =
DOCKER_SOCKET =
если [-f / etc / default / $ UPSTART_JOB]; тогда
. / И т.д. / по умолчанию / $ UPSTART_JOB
фи

если ! Printf "% s" "$ DOCKER_OPTS" | grep -qE -e ‘-H | –host’; тогда
DOCKER_SOCKET = / дом / geekflare / docker.sock
еще
DOCKER_SOCKET = $ (Printf "% s" "$ DOCKER_OPTS" | grep -oP -e ‘(-H | –host) \ W * unix: // \ K (\ S +)’ | седь 1q)
фи

если [-n "$ DOCKER_SOCKET" ]; тогда
пока ! [-е "$ DOCKER_SOCKET" ]; делать
статус initctl $ UPSTART_JOB | grep -qE "(Остановка | респаун) /" && выход 1
эхо "В ожидании $ DOCKER_SOCKET"
спать 0,1
сделанный
эхо "$ DOCKER_SOCKET поднялся"
фи
конец сценария

  • Отредактируйте файл docker.socket, расположенный в / lib / systemd / system /, с обновленным расположением файла docker.sock.

[Электронная почта защищена]: ~ $ sudo gedit /lib/systemd/system/docker.socket

[Единица измерения]

Описание = Docker Socket для API

PartOf = docker.service

[Разъем]

ListenStream = / дом / geekflare / docker.sock

SocketMode = 0660

SocketUser = корень

SocketGroup = докер

[Установить]

WantedBy = sockets.target

Запустите приведенную ниже команду, чтобы обновить изменения (расположение файла носка Docker).

[Электронная почта защищена]: ~ $ sudo systemctl daemon-reload

Запустить Docker

Давайте запустим сервис Docker и проверим статус, если он запущен. В конце журнала состояния, напечатанного на терминале, вы увидите обновленный путь к файлу docker.sock..

[Электронная почта защищена]: ~ $ sudo service docker start
[Электронная почта защищена]: ~ $ sudo сервисный докер статус

docker.service – механизм контейнера приложений Docker
Загружен: загружен (/lib/systemd/system/docker.service; включен; предустановка поставщика: включена)
Активен: активен (работает) с Сб 2019-11-23 15:39:36 EST; 3 с. Назад
Документы: https://docs.docker.com
Основной PID: 8840 (dockerd)
Задачи: 17
Память: 47.6M
CGroup: /system.slice/docker.service
88─8840 / usr / bin / dockerd -H fd: // –containerd = / run / containerd / containerd.sock

23 ноября, 15:39:35 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 35.091941184-05: 00" уровень = предупреждение msg ="Ваше ядро ​​не поддерживает cgroup rt runtime"
23 ноября, 15:39:35 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 35.093149218-05: 00" уровень = информация сообщения ="Загрузка контейнеров: начало."
23 ноября, 15:39:35 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 35.957842188-05: 00" уровень = информация сообщения ="Мост по умолчанию (docker0) назначается с IP-адресом 172.17.0.0/16. демон
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.078753190-05: 00" уровень = информация сообщения ="Загрузка контейнеров: сделано."
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.664727326-05: 00" уровень = информация сообщения ="Docker демон" commit = 481bc77 graphdriver (s) = версия overlay2 = 18.09.6
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.817929464-05: 00" уровень = ошибка msg ="кластер вышел с ошибкой: ошибка при загрузке сертификата TLS в / var / lib / do
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.820439024-05: 00" уровень = ошибка msg ="компонент роя не может быть запущен" = ошибка"ошибка при загрузке сертификата TLS
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.820821712-05: 00" уровень = информация сообщения ="Демон завершил инициализацию"
23 ноября, 15:39:36 geekflare systemd [1]: запущен механизм контейнера приложений Docker.
23 ноября 15:39:36 geekflare dockerd [8840]: время ="2019-11-23T15: 39: 36.883382952-05: 00" уровень = информация сообщения ="API прослушивает /home/geekflare/docker.sock"

Запустите команду ls по пути к файлу docker.sock, просто чтобы убедиться, что этот файл был создан при запуске службы docker..

[Электронная почта защищена]: ~ $ ls -l
всего 466832
-rw-r – r– 1 geekflare geekflare 0 окт 23 05:32]
drwxr-xr-x 9 tomcat tomcat 4096 18 ноября 14:30 apache-tomcat-9.0.27
-rw-r – r– 1 geekflare geekflare 10982406 7 октября 06:21 apache-tomcat-9.0.27.tar.gz
drwxr-xr-x 8 geekflare geekflare 4096 23 октября 06:05 шеф-репо
-rw-r – r– 1 geekflare geekflare 252269838 1 июля 15:16 chef-server-core_13.0.17-1_amd64.deb
-rw-r – r– 1 geekflare geekflare 129713682 27 декабря 2018 chef-workstation_0.2.43-1_amd64.deb
drwxr-xr-x 2 geekflare geekflare 4096 23 октября 2018 г. Рабочий стол
-rw-r – r– 1 geekflare geekflare 726 июля 27 15:10 Dockerfile
srw-rw —- 1 корневой докер 0 ноя 23 15:39 docker.sock
drwxr-xr-x 2 geekflare geekflare 4096 23 октября 2018 г. Документы
drwxr-xr-x 2 geekflare geekflare 4096 июл 20 18:20 Загрузки
-rw-r – r– 1 geekflare geekflare 8980 23 октября 2018 examples.desktop

Вы успешно обновили расположение файла носка Docker.

Если вы хотите изучать Docker, но заняты, проверьте это ускоренный курс.

TAGS:

  • докер

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map