Почему я не могу присоединить контейнер к докерной сети? - PullRequest
1 голос
/ 21 июня 2019

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

$ docker network connect mrunner baz 
Error response from daemon: network mrunner not found

Сеть определена и подключаема

$ docker network inspect mrunner
[
    {
        "Name": "mrunner",
        "Id": "kviwxfejsuyc9476eznb7a8yw",
        "Created": "2019-06-20T21:25:45.271304082Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.0.1.0/24",
                    "Gateway": "10.0.1.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": null,
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4098"
        },
        "Labels": null
    }
]


$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
4a454d677dea        bridge              bridge              local
95383b47ee94        docker_gwbridge     bridge              local
249684755b51        host                host                local
zgx0nppx33vj        ingress             overlay             swarm
kviwxfejsuyc        mrunner             overlay             swarm
a30a12f8d7cc        none                null                local
uftxcaoz9rzg        taskman_default     overlay             swarm

Почему не работает это сетевое соединение?

** Здесь ответили: https://github.com/moby/moby/issues/39391

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Благодаря thaJeztah в docker git repo:

Решение заключается в следующем, но по сути делает сервис потока ориентированным:

docker network create -d overlay --attachable --scope=swarm somenetwork

docker service create --name someservice nginx:alpine

Если вы хотите подключить сервис кsomenetwork после того, как это было создано, обновите сервис;

docker service update --network-add somenetwork someservice

После этого;все задачи службы someservice будут связаны с somenetwork (в дополнение к другим оверлейным сетям, к которым они были подключены).

https://github.com/moby/moby/issues/39391#issuecomment-505050610

0 голосов
/ 21 июня 2019

См. это :

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

$ docker network create -d overlay my-overlay

Чтобы создать оверлейную сеть, которая может использоваться службами Swarm или автономными контейнерами для связи с другими автономными контейнерами, работающими на других демонах Docker, добавьте флаг --attachable:

$ docker network create -d overlay --attachable my-attachable-overlay

Таким образом, по умолчанию оверлейная сеть не может использоваться автономными контейнерами, если вы настаиваете на этом, вам нужно добавить --attachable, чтобы разрешить использование этой сети автономными контейнерами.

...