docker compose down 不会关闭/删除容器

mat*_*ett 2 docker docker-compose

我已经研究过一个简单的问题docker compose down,但找不到解决方案。任何指导表示赞赏。

\n

docker compose up工作正常,但是当我尝试关闭该项目时,一个容器不会关闭/删除。这会导致error while removing network: ... has active endpointsdocker compose down 期间出现错误。

\n

以下是我启动容器的方法:\n yarn docker:compose:test:up,它运行"docker compose -f docker-compose.test.yml up". 一切开始都很好,生活还要继续。

\n

这是整个docker-compose.test.yml文件:

\n
---\nservices:\n  redis:\n    networks:\n      - redis-network\n    command:\n      - redis-server\n      - "--appendonly"\n      - "yes"\n      - "--requirepass ${REDIS_PASSWORD}"\n    image: redis\n    container_name: resonate-redis\n    restart: always\n\n    expose:\n      - 6379\n    ports:\n      - "${REDIS_PORT}:6379"\n\n  api:\n    networks:\n      - api-network\n      - redis-network\n    build: .\n    command: /bin/sh -c "yarn && yarn migrate:test && yarn start:dev"\n    container_name: resonate-api\n    environment:\n      - NODE_ENV=test\n    depends_on:\n      - redis\n      - pgsql-test\n    ports:\n      - "4000:4000"\n    restart: always\n    volumes:\n      - ./:/var/www/api\n      - ./data/media/incoming:/data/media/incoming\n      - ./data/media/audio:/data/media/audio\n      - ./data/media/images:/data/media/images\n\n  pgsql-test:\n    image: postgres:14-alpine\n    env_file:\n      - .env\n    volumes:\n      - ./data/pgsql-test:/var/lib/postgresql/data\n      - ./data/pgsql-test-backups:/backups\n    container_name: resonate-pgsql-test\n    networks:\n      - api-network\n    ports:\n      - '${POSTGRES_TEST_LOCAL_MACHINE_PORT}:5432'\n  nginx:\n    restart: always\n    container_name: resonate-nginx\n    networks:\n      - api-network\n    build:\n      context: ./nginx\n    ports:\n      - "${NGINX_PORT}:80"\n\nnetworks:\n  api-network:\n    driver: bridge\n  # app-network:\n  #   driver: bridge\n  redis-network:\n    driver: bridge\n\nvolumes:\n  certbot-etc:\n  certbot-var:\n  htpasswd:\n    driver: local\n    driver_opts:\n      type: none\n      device: "${PWD}/htpasswd/"\n      o: bind\n  web-root:\n    driver: local\n    driver_opts:\n      type: none\n      device: "${PWD}/public/"\n      o: bind\n  dhparam:\n    driver: local\n    driver_opts:\n      type: none\n      device: "${PWD}/dhparam/"\n      o: bind\n\nversion: "3.7"\n
Run Code Online (Sandbox Code Playgroud)\n

后来,我运行docker compose down并最终得到以下输出:

\n
(base) iMac:api imac$ docker compose down\n[+] Running 4/5\n \xe2\xa0\xbf Container resonate-nginx   Removed                  0.3s\n \xe2\xa0\xbf Container resonate-api     Removed                  0.5s\n \xe2\xa0\xbf Container resonate-redis   Removed                  0.3s\n \xe2\xa0\xbf Network api_redis-network  Removed                  0.1s\n \xe2\xa0\xbf Network api_api-network    Error                    0.0s\nfailed to remove network api_api-network: Error response from daemon: error while removing network: network api_api-network id ... has active endpoints\n
Run Code Online (Sandbox Code Playgroud)\n

容器pgsql-test没有被移除,网络也不能因此而停止。

\n

我不知道为什么会发生这种情况,也不知道该怎么做才能解决它。任何帮助表示赞赏。

\n

谢谢!

\n

小智 5

刚刚发生在我身上。

无法删除网络 ots_djangoapp:来自守护程序的错误响应:删除网络时出错:网络 ots_djangoapp id 1450efd2df6c 具有活动端点

已经工作多年了,但看起来好像其中一项更新改变了一切。可能在 2.7.0 错误修复中https://docs.docker.com/compose/profiles/

我的 yml 配置使用了配置文件

https://docs.docker.com/compose/profiles/

我将分别从docker-compose --profile prod up -d和开始docker-compose down

通过简单地将显式的 --profile 参数添加到 down 命令中,我让它再次工作。

docker-compose --profile prod down

-干杯