Конфигурация демона Docker - Открытие портов для dockerd

Я хочу открыть TCP для демона docker, чтобы Дженкинс мог создавать контейнеры для него.

Я получаю много информации о том, как это сделать. Надеясь получить лучший метод.

Цели dockerd:

  • Прослушивание через TCP и локальный сокет unix.
  • Постоянство через перезагрузки.
  • Авторизация для конкретного хоста в целях безопасности. Разрешать доступ только с определенного хоста. (может быть сделано с помощью iptables)

Это хост Ubuntu Ubuntu.

Текущая информация о запуске Dockerd:

root@host:# ps -ef |grep dockerdroot      1171     1  0 17:51 ?        00:00:04 /usr/bin/dockerd -H fd://

Фрагмент конфигурации Docker (/etc/init/docker.conf):

post-start script        DOCKER_OPTS=        DOCKER_SOCKET=        if [ -f /etc/default/$UPSTART_JOB ]; then                . /etc/default/$UPSTART_JOB        fi        if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then                DOCKER_SOCKET=/var/run/docker.sock        else                DOCKER_SOCKET=$(printf "%s" "$DOCKER_OPTS" | grep -oP -e '(-H|--host)\W*unix://\K(\S+)' | sed 1q)        fi        if [ -n "$DOCKER_SOCKET" ]; then                while ! [ -e "$DOCKER_SOCKET" ]; do                        initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1                        echo "Waiting for $DOCKER_SOCKET"                        sleep 0.1                done                echo "$DOCKER_SOCKET is up"        fiend script

Как мне следует поступить с этим?

Нашел применимый и понятный ответ на этот блог

Шаги:

Отредактируйте Этот файл:

sudo vi /lib/systemd/system/docker.service

Ищите существующие ExecStart линия:

ExecStart=/usr/bin/docker daemon -H fd://

Добавьте желаемую конфигурацию:

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:3272

Перезапуск:

systemctl daemon-reloadsudo service docker restart

После этого мой демон прослушивал 3272 и был готов к работе!

У меня была похожая проблема. Когда я начал искать возможность начать перенос некоторых систем с Ubuntu 14.04 на Ubuntu 16.04. Моя цель состояла в том, чтобы использовать один конфигурационный файл dockerd с флагами dockerd (DOCKER_OPTS) как для Ubuntu 16.04 (systemd), так и для Ubuntu 14.04 (Upstart), кроме /etc/docker/daemon.json. Я решил не использовать /etc/docker/daemon.json для настройки демона docker, поскольку json не поддерживает комментарии.

Я хотел, чтобы в дизайне systemd использовался файл переопределения, который изменяет только флаги dockerd. Он использует файл конфигурации Docker systemd по умолчанию (/lib/systemd/system/docker.service) для других настроек Docker. Другой целью было настроить systemd в каждой системе после каждого изменения или загрузки.

Это решает мою проблему. Это может вам помочь.

git clone https://github.com/BradleyA/docker-security-infrastructurecd docker-security-infrastructure/dockerd-configuration-optionsmore README.md