Как разрешить bash: docker: команда не найдена внутри контейнера докеров?

Я использую докер в Windows. И все работает нормально. Я могу создавать образы и докер-контейнеры.

Версия докера:

docker -v:Docker version 26.1.1, build 4cf5afa

И я добавил в переменные среды Windows следующие пути:

C:\Program Files\Docker\Docker\resources
C:\Program Files\Docker\Docker\resources\bin

Но если я попытаюсь подключиться из докер-контейнера к другой сети внутри докер-контейнера:

root@032194c3eca0:/# docker exec dwl_backend_rachid-web-1 bash -c "ping 172.18.0.3"

Затем выскакивает следующая ошибка:

bash: docker: command not found

Вопрос: как устранить эту ошибку?

Подождите, не обращайте внимания на мою предыдущую команду, я неправильно понял: в большинстве образов докеров не будет установлена ​​команда docker, зачем им это делать? Они запускаются в докере и не предназначены для взаимодействия с другими контейнерами (и обычно не могут, если вы явно не предоставите им доступ к сокету).

Joachim Sauer 27.05.2024 14:17

@ЙоахимЗауэр? Какова тогда команда для проверки связи с другим докер-контейнером внутри докер-контейнера? Я читал, что вы можете сделать это с помощью опубликованной мной команды.

mightycode Newton 27.05.2024 14:19

Нарушение функций изоляции Docker было бы плохой идеей, если бы это было возможно. По замыслу вы не должны иметь возможность общаться с хостом, на котором работает образ Docker.

tripleee 27.05.2024 14:25

Контейнер Docker — это оболочка одного процесса, а процессы редко напрямую обрабатывают сообщения ICMP. Почему важна отправка пакета ICMP ECHO с помощью ping(1)?

David Maze 27.05.2024 14:31

Есть ли конкретная причина не использовать Docker exec из cmd Windows? В противном случае просто запустите ping из этого контейнера.

OneCricketeer 27.05.2024 15:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам необходимо установить интерфейс командной строки Docker внутри вашего образа.

Вот мое решение той же проблемы (которое можно настроить под ваши нужды):

FROM <YOUR_DEBIAN_BASED_IMAGE>

RUN apt update -y
RUN apt install -y curl
RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ && mv /tmp/docker/docker /usr/bin/docker

# Customize here your container...

Затем, чтобы подключиться к докеру вне вашего контейнера, вам нужно не забыть создать свой контейнер:

docker run -v /var/run/docker.sock:/var/run/docker.sock <YOUR_IMAGE>

По этой ссылке https://devopscube.com/run-docker-in-docker/ вы можете найти еще несколько полезных объяснений.

Я сомневаюсь, что это то, о чем спрашивает ОП. Похоже, они хотят иметь возможность подключаться к демону docker в хост-системе.

tripleee 27.05.2024 14:24

Я добавил дополнительную информацию об этом.

Antonio Petricca 27.05.2024 14:29

Другие вопросы по теме