Добавление команд Docker в мой контейнер Docker - PullRequest
0 голосов
/ 11 июня 2018

У меня есть проблема, с которой люди столкнулись, но не до такой степени.

Я делаю проверку работоспособности Docker Swarm, которая регулярно регистрирует работоспособность узлов Docker в моей среде.Я столкнулся с проблемой запуска команд Docker из контейнера.Я нашел сообщение, где вы можете запустить эту команду:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker image_name bash

И это будет работать так, как я хотел.Проблема в том, что я хочу это в контейнере, который был запущен из файла в стеке.Я попробовал каждую комбинацию монтирований объема, которая есть.Это было то, что я делал совсем недавно, и это все еще не работало.Я пропускаю очевидный шаг, чтобы вставить Docker в мой контейнер?

service_name:
  image: imaged_name
  volumes:
    - sock-docker:/var/run/docker.sock
    - bin-docker:/usr/bin/docker
  deploy:
    placement:
      constraints:
        - node.role == manager
    restart_policy:
      condition: any
      delay: 10s
      max_attempts: 50
      window: 600s
volumes:
  sock-docker:
    external:
      name: /var/run/docker.sock
  bin-docker:
    external:
      name: usr/bin/docker

1 Ответ

0 голосов
/ 12 июня 2018

Несколько мыслей:

  1. Я не знаю о монтировании v /usr/bin/docker:/usr/bin/docker как у вас.Это, очевидно, работает для вас, но моя привычка - использовать https://hub.docker.com/_/docker/.Я подозреваю, что мой подход лучше, но я действительно не знаю.В любом случае, я не буду комментировать этот аспект вашего вопроса.
  2. Я думаю, вам нужно заменить - sock-docker:/var/run/docker.sock на - /var/run/docker.sock:/var/run/docker.sock в вашем файле YAML.Разве том верхнего уровня в файле YAML не относится к монтированию тома, а не связывает монтирование?(Я не знаю.)
  3. Рой предлагает мне распространяться.Сокет Docker, работающий на узле, может / может не совпадать с тем, который обслуживает рой.Вы можете обойти эту проблему, используя ENV DOCKER_HOST=tcp://....DOCKER_HOST может быть на другом компьютере.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...