我正在通过以下方式将撰写文件部署到UCP上:

docker stack deploy -c docker-compose.yml custom-stack-name

最后,我想将多个撰写文件(每个撰写文件描述一个单独的微服务的设置)部署到一个docker网络上,例如appsnetwork
version: "3"
services:

  service1:
    image: docker/service1
    networks:
      - appsnetwork

  customservice2:
    image: myprivaterepo/imageforcustomservice2
    networks:
      - appsnetwork

networks:
  appsnetwork:
docker stack deploy命令自动创建一个新网络,其名称如下:custom-stack-name_appsnetwork

我有什么选择?

最佳答案

尝试先自己创建网络

docker network create --driver=overlay --scope=swarm appsnetwork

之后,将网络置于外部
version: "3"
services:
  service1:
    image: nginx
    networks:
      - appsnetwork

networks:
  appsnetwork:
    external: true

之后,运行堆栈的两个副本
docker stack deploy --compose-file docker-compose.yml stack1
docker stack deploy --compose-file docker-compose.yml stack2

Docker检查两者是否显示同一网络中的IP
$ docker inspect 369b610110a9
  ...
            "Networks": {
                "appsnetwork": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.1.5"
                    },
                    "Links": null,
                    "Aliases": [
                        "369b610110a9"
                    ],

$ docker inspect e8b8cc1a81ed

            "Networks": {
                "appsnetwork": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.1.3"
                    },
                    "Links": null,
                    "Aliases": [
                        "e8b8cc1a81ed"
                    ],

关于docker - 如何在Docker Stack部署上禁用网络生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46485249/

10-12 00:17
查看更多