小编moe*_*man的帖子

Docker Swarm:如何更新已发布的帖子

我使用 Play-with-Docker 平台创建了一个包含 3 个 Docker 实例的 Swarm 集群:1 个管理器和 2 个工作器;然后我从图像创建一个服务nginx:alpine

docker service create -p 8080:80 --name nginx-app nginx:alpine
Run Code Online (Sandbox Code Playgroud)

事情进展顺利。

然后我update使用更改发布端口的服务:而不是8080,现在我希望发布端口为8081。我跑了这个:

docker service update --publish-rm 8080 --publish-add 8081 nginx-app
Run Code Online (Sandbox Code Playgroud)

但它并没有删除已发布的端口8080;相反,它创建了另一个已发布的端口30002,该端口30002映射到8081

在此输入图像描述

我在这里做错了什么?如何更改已发布的端口?

docker docker-swarm

4
推荐指数
1
解决办法
1923
查看次数

Docker:绑定安装的奇怪行为

我有一个撰写文件:

version: "3"
services:

  db:
    image: postgres:12.5
    ports:
      - "15432:5432"
    restart: always  
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: test
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

  backend:
    image: backend
    depends_on:
      - db
    restart: always
    ports:
      - "6969:8000"
    volumes:
      - ./app:/app
Run Code Online (Sandbox Code Playgroud)

当我运行 docker-compose up 来启动 2 个容器时,我注意到:

  • Docker 自动创建目录 postgres-data,并将 /var/lib/postgresql/data 的内容从容器传输到主机目录postgres-data
  • 通过后端服务,Docker 还会自动创建目录 ./app,但它不是将 /app 目录(从容器)的内容传输到主机中的 ./app 目录,而是执行相反的操作将内容从容器传输到主机中。主机中的 ./app 目录到容器中的 /app

这两个服务都使用绑定挂载,据我了解:绑定挂载始终将内容从主机目录传输到容器。但在 db 服务的情况下不会发生这种情况

那么我这里哪里理解错了呢?

提前致谢

docker docker-compose docker-volume

1
推荐指数
1
解决办法
625
查看次数