我有一个带有一些 php、mysql 等启动的 docker-compose。几天后,我无法将它们关闭,因为一切都停止了,而不是 mysql。它总是给我以下错误:
ERROR: network docker_default has active endpoints
这是我的 docker-compose.yml
version: '2'
services:
php:
build: php-docker/.
container_name: php
ports:
- "9000:9000"
volumes:
- /var/www/:/var/www/
links:
- mysql:mysql
restart: always
nginx:
build: nginx-docker/.
container_name: nginx
links:
- php
- mysql:mysql
environment:
WORDPRESS_DB_HOST: mysql:3306
ports:
- "80:80"
volumes:
- /var/log/nginx:/var/log/nginx
- /var/www/:/var/www/
- /var/logs/nginx:/var/logs/nginx
- /var/config/nginx/certs:/etc/nginx/certs
- /var/config/nginx/sites-enabled:/etc/nginx/sites-available
restart: always
mysql:
build: mysql-docker/.
container_name: mysql
volumes:
- /var/mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: pw
MYSQL_USER: florian
MYSQL_PASSWORD: pw
MYSQL_DATABASE: database
restart: always
phpmyadmin:
build: phpmyadmin/.
links:
- mysql:db
ports:
- 1234:80
container_name: phpmyadmin
environment:
PMA_ARBITRARY: 1
PMA_USERNAME: florian
PMA_PASSWORD: pw
MYSQL_ROOT_PASSWORD: pw
restart: always
docker network inspect docker_default
给我:
[
{
"Name": "docker_default",
"Id": "1ed93da1a82efdab065e3a833067615e2d8b76336968a2591584af5874f07622",
"Created": "2017-03-08T07:21:34.969179141Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"85985605f1c0c20e5ee9fedc95800327f782beafc0049f51e645146d2e954b7d": {
"Name": "mysql",
"EndpointID": "84fb19cd428f8b0ba764b396362727d9809cd1cfea536e648bfc4752c5cb6b27",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
更新
似乎 docker rm mysql -f
停止了mysql容器,但网络正在运行。
用 docker network disconnect -f docker_default mysql
删除了网络,但我对我是如何陷入这种情况很感兴趣的。有任何想法吗?
原文由 Florian 发布,翻译遵循 CC BY-SA 4.0 许可协议
我猜您在当前运行时编辑了 docker-compose 文件…?
有时,如果您在执行
docker-compose down
之前编辑 docker-compose 文件,那么 docker-compose 将尝试停止的内容会不匹配。首先运行docker rm 8598560
停止当前运行的容器。从那里,确保在编辑文件之前执行docker-compose down
。停止容器后,docker-compose up
应该可以工作。