这是我的码头撰写文件
version: '2'
# based off compose-sample-2, only we build nginx.conf into image
# uses sample site from https://startbootstrap.com/template-overviews/agency/
services:
proxy:
build:
context: .
dockerfile: nginx.Dockerfile
ports:
- '80:80'
web:
image: httpd
volumes:
- ./html:/usr/local/apache2/htdocs/
现在,当我运行docker-compose up时,我可以进入任何获取创建的服务
答案 0 :(得分:4)
标准机制不是ssh
进入容器,而是使用docker exec
连接到容器。给定3cdb7385c127
之类的容器ID,您可以使用
ssh
)
docker exec -it 3cdb7385c127 sh
或完整登录shell,如果您在容器中有可用的bash
docker exec -it 3cdb7385c127 bash -l
如果您愿意,您仍然可以ssh
进入容器,但是您需要安装,配置并运行ssh
服务器,并且您需要从外部访问容器IP或将容器的重定向:22到主机上的某个端口。
答案 1 :(得分:2)
docker ps
&#39;获取容器的名称和泊坞窗ID。docker exec <docker_id> -it /bin/bash
&#39; 这将在容器内给你bash提示。
答案 2 :(得分:1)
如果在docker-compose.yaml文件中指定container_name
,则可以使用docker exec
命令登录。
示例:
django:
container_name: django
more_stuff: ...
然后,登录到正在运行的docker-compose:
docker exec -it django /bin/bash
这对我来说效果更好,因为我不需要检查当前的运行ID,而且很容易记住。
答案 3 :(得分:0)
虽然使用docker
命令也可以,但是最简单的方法(不需要找出容器的ID)是使用docker-compose run
子命令,例如:
service="web"
docker-compose run $service /bin/bash