这是我的docker撰写文件
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时,我可以进入任何获取创建的服务
标准机制不是将ssh
变成容器,而是使用docker exec
连接到容器。给定像3cdb7385c127
这样的容器ID,你可以用它连接(也就是ssh
)
docker exec -it 3cdb7385c127 sh
或者如果您在容器中有可用的bash,则为完整的登录shell
docker exec -it 3cdb7385c127 bash -l
如果你愿意,你仍然可以将ssh
放入容器中,但是你需要安装,配置和运行ssh
服务器,你需要从外部访问容器IP或将容器的重定向:22到主机上的某个端口上。
docker ps
'来获取容器的名称和泊坞窗ID。docker exec <docker_id> -it /bin/bash
'这将在容器内给你bash提示符。
如果在docker-compose.yaml文件中指定container_name
,则可以使用docker exec
命令登录。
例:
django:
container_name: django
more_stuff: ...
然后,登录到正在运行的docker-compose:
docker exec -it django /bin/bash
这对我来说效果更好,因为我不需要检查当前运行的ID,而且我很容易记住。