我已经运行了一个图像:'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
Run Code Online (Sandbox Code Playgroud)
我尝试运行 bash 以进入 shell,但出现错误,如何解决这个问题,我想我做错了什么。
$docker-compose run myapp /bin/bash
ERROR: No such service: myapp
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: '2'
services:
web:
container_name: myapp
build: .
command: node app.js
ports:
- "9000:3000"
Run Code Online (Sandbox Code Playgroud)
Phi*_*ann 34
我认为你得到了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"
Run Code Online (Sandbox Code Playgroud)
用于docker-compose
启动容器并在正在运行的容器中运行命令:
docker-compose up
docker-compose exec web /bin/bash
Run Code Online (Sandbox Code Playgroud)
docker-compose
使用服务的名称 - 在您的情况下是web
- 而docker
使用容器名称 - 在这种情况下myapp
。
因此,要/bin/bash
贯穿docker
,您将使用以下内容:
docker exec -ti myapp /bin/bash
Run Code Online (Sandbox Code Playgroud)
您可以删除container_name
from docker-compose.yaml
,然后容器将自动命名为docker-compose
- 类似于服务,但前缀为docker-compose
堆栈名称(所在的文件夹名称docker-compose.yaml
)。
归档时间: |
|
查看次数: |
59273 次 |
最近记录: |