Docker
docker-compose 沒有這樣的服務:myapp
我執行了一個圖像:‘docker-compose up’
使用 ‘docker ps’ 我得到:
CREATED STATUS PORTS NAMES 55e1fd18acf1 simpleappnodedocker_web "node app.js" 6 seconds ago Up 6 seconds 0.0.0.0:9000->3000/tcp myapp 9879ff20e241 postgres:9.6 "docker-entrypoint..." 36 hours ago Up 36 hours 0.0.0.0:5432->5432/tcp nd-db
我嘗試執行 bash 進入 shell,但我得到一個錯誤,如何解決這個問題,我想我做錯了什麼。
$docker-compose run myapp /bin/bash ERROR: No such service: myapp
碼頭工人-compose.yml:
version: '2' services: web: container_name: myapp build: . command: node app.js ports: - "9000:3000"
我認為你得到了
docker
和docker-compose
錯誤的關係:
docker-compose
是一個包裝器docker
。要完成它的工作docker-compose
需要它的配置:docker-compose.yaml
進一步旋轉您的範例:
創建docker-compose.yaml:
version: '2' services: web: container_name: myapp build: . command: node app.js ports: - "9000:3000"
用於
docker-compose
啟動容器並在正在執行的容器中執行命令:docker-compose up docker-compose exec web /bin/bash
docker-compose
使用服務的名稱 - 在您的情況下是web
- 而docker
使用容器名稱 - 在這種情況下myapp
。因此,要執行
/bin/bash
,docker
您將使用以下內容:docker exec -ti myapp /bin/bash
您可以刪除
container_name
fromdocker-compose.yaml
,然後容器將自動命名為docker-compose
- 類似於服務,但以docker-compose
堆棧名稱(所在的文件夾名稱)為前綴docker-compose.yaml
。