Как изменить сеть работающего докера? - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь обновить сеть работающего док-контейнера.

Примечание. Я не подключал никакую сеть во время работы контейнера.

[root@stagingrbt ~]# docker network connect host cdf8d6e3013d
Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network

[root@stagingrbt ~]# docker network connect docker_gwbridge cdf8d6e3013d
error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/networks/docker_gwbridge/connect: EOF


[root@stagingrbt ~]# docker network create -d host my-host-network
Error response from daemon: only one instance of "host" network is allowed


[root@stagingrbt ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
495080cf93e3        bridge              bridge              local
cf0408d6f13f        docker_gwbridge     bridge              local
2c5461835eaf        host                host                local
87e9cohcbogh        ingress             overlay             swarm
84dbd78101e3        none                null                local
774882ac9b09        sudhirnetwork       bridge              local

1 Ответ

0 голосов
/ 16 февраля 2019

Когда вы запускаете контейнер, например:

docker run -d --name alpine1 alpine

По умолчанию он подключен к сети bridge, проверьте его с помощью:

docker container inspect alpine1

Если вы попытаетесьподключите его к host сети с:

docker network connect host alpine1

вы получите ошибку:

Ошибка ответа от демона: контейнер не может быть отключен от сети хоста или подключен к сети хоста

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

docker stop alpine1
docker rm alpine1
docker run -d --network host --name alpine1 alpine

Это ограничение отсутствует в мостовых сетях.Вы можете запустить контейнер:

docker run -d --name alpine2 alpine

отключите его от мостовой сети и подключите его к другой мостовой сети.

docker network disconnect bridge alpine2
docker network create --driver bridge alpine-net
docker network connect alpine-net alpine2

Обратите внимание также, что согласно документации :

Сетевой драйвер хоста работает только на хостах Linux и не поддерживается в Docker Desktop для Mac, Docker Desktop для Windows или Docker EE для Windows Server.

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