Одной из причин, по которой я могу придумать, является использование инструмента или команды , которая недоступна в вашем контейнере. Этот пример ниже взят прямо из docker run
документов :
СЕТЬ: КОНТЕЙНЕР
Пример запуска контейнера Redis с привязкой Redis к localhost
, затем выполнения команды redis-cli
и подключения к серверу Redis через интерфейс localhost
.
$ docker run -d --name redis example/redis --bind 127.0.0.1
$ # use the redis container's network stack to access localhost
$ docker run --rm -it --network container:redis example/redis-cli -h 127.0.0.1
Аналогичным образом можно использовать эту технику для отладки контейнера. Например, если ваш контейнер не имеет tcpdump
, вы можете создать изображение, которое имеет его:
docker build -t tcpdump - <<EOF
FROM ubuntu
RUN apt-get update && apt-get install -y tcpdump
CMD tcpdump -i eth0
EOF
и run
контейнер для отладки вашего приложения:
docker run --rm --net=container:my-app tcpdump
Если ваш вопрос был больше о Kubernetes , есть несколько интересных ссылок: