[英]Docker compose stops multiple services
我希望我沒有錯過手冊中的任何簡單內容。
結構是:
/home/user
/foo1/bar1/docker/
Dockerfile
docker-compose.yml
/foo2/bar2/docker/
Dockerfile
docker-compose.yml
docker-compose.yml
version: '3.9'
services:
foo1-bar1:
build:
context: .
args:
DOCKER_SERVER_ROOT_DIR: ${DOCKER_SERVER_ROOT_DIR}
dockerfile: Dockerfile
image: foo1-bar1:v1
container_name: foo1-bar1-v1
foo-bar-v2
也是如此。 我成功地運行了他們兩個:
cd /foo1/bar1/docker/
docker-compose up -d
[+] Running 1/1
⠿ Container foo1-bar1-v1 Started
cd /foo2/bar2/docker/
docker-compose up -d
[+] Running 1/1
⠿ Container foo2-bar2-v1 Started
問題是,為什么當我試圖只停止 1 時它會停止它們? 服務名、容器名、鏡像名不一樣……
user@vm:~/foo1/bar1/docker$ docker-compose stop
[+] Running 2/2
⠿ Container foo1-bar1-v1 Stopped
⠿ Container foo2-bar2-v2 Stopped
docker-compose 有projects
的概念。 運行docker-compose --help
你會看到:
--project-directory string Specify an alternate working directory
(default: the path of the, first specified, Compose file)
-p, --project-name string Project name
因此,在您的情況下,您的兩個服務都屬於名為docker
的同一個項目。
您實際上可以運行docker-compose -p docker ps
並且您將看到您的兩個服務。
您還可以通過指定您自己的項目名稱來覆蓋它,而不是目錄名稱。
我的 docker-compose 版本(Docker Compose 版本 v2.10.2 MacOS)確實警告我,當我復制您的設置時,此項目中有孤立容器。 此外,它不會自動停止“孤立”服務,並會發出警告說網絡也無法刪除。
這也是另一個有趣的事實:兩個服務都在同一個網絡(docker_default)上運行,只是因為項目名稱(文件夾名稱)相同。
我希望這能解釋它。
您必須指定要停止的服務。 否則它將停止所有服務。
docker compose stop [OPTIONS] [SERVICE...]
這里: docker-compose stop foo1-bar1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.