Я использую докер в 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 было бы плохой идеей, если бы это было возможно. По замыслу вы не должны иметь возможность общаться с хостом, на котором работает образ Docker.
Контейнер Docker — это оболочка одного процесса, а процессы редко напрямую обрабатывают сообщения ICMP. Почему важна отправка пакета ICMP ECHO с помощью ping(1)?
Есть ли конкретная причина не использовать Docker exec из cmd Windows? В противном случае просто запустите ping из этого контейнера.





Вам необходимо установить интерфейс командной строки 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 в хост-системе.
Я добавил дополнительную информацию об этом.
Подождите, не обращайте внимания на мою предыдущую команду, я неправильно понял: в большинстве образов докеров не будет установлена команда
docker, зачем им это делать? Они запускаются в докере и не предназначены для взаимодействия с другими контейнерами (и обычно не могут, если вы явно не предоставите им доступ к сокету).