Подключите Docker -контейнер через разъем - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь соединить Docker -контейнер с внутренним ресурсом через Unit-socket.

Для этого я добавляю в Dockerfile следующую команду:

 RUN -v /var/run/docker.sock:/var/run/postgresql/.s.PGSQL.5432

Но на стадия docker сборки Я получаю: / bin / sh: недопустимая опция - ОШИБКА: не удалось создать службу 'webapp': команда '/ bin / sh - c -v / var / run / docker .sock: /var/run/postgresql/.s.PGSQL.5432 'вернул ненулевой код: 2

Что я делаю не так?

1 Ответ

1 голос
/ 26 января 2020

RUN инструкция в Dockerfile используется для запуска команды внутри контейнера во время сборки, а не для запуска вашего контейнера. Обратитесь к документации .

Чтобы сделать сокет Unix доступным внутри вашего контейнера, укажите bind mount при запуске контейнера:

docker run -v /var/run/postgresql/.s.PGSQL.5432:/var/run/postgresql/.s.PGSQL.5432 yourapp:latest

Это сделает сокет /var/run/postgresql/.s.PGSQL.5432 на вашем хосте доступным внутри контейнера.

Вы также можете указать другой путь к хосту и контейнеру:

docker run -v /var/run/postgresql/.s.PGSQL.5432:/tmp/postgresql yourapp:latest

Примечание: /var/run/docker.sock используется для связи с демоном Docker. Будьте осторожны с этим, поскольку доступ к демону Docker обеспечивает root доступ к вашей машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...