我的docker-compose.yaml文件如下
version: '3'
services:
client:
image: thusithathilina/my_image
ports:
- "5000:22"
command: ["/usr/sbin/sshd"]
stdin_open: true
tty: true
但是这并没有以交互模式启动容器。我想以交互模式启动容器启动时的ssh。有人能指出我在这里做错了吗?
主机是Linux 9a65bd45c029 3.13.0-128-generic#177-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux 我用了
docker-compose run client
答案 0 :(得分:0)
如果您的容器本身没有产生一个长时间运行的进程,docker-compose run
将使其运行并立即退出。或者,您可以发出命令:
docker-compose run client sh
附加到打开的shell会话,使您进入交互模式。如果这不是您要查找的内容,则需要确保容器正确处理了指定的命令(command: ["/usr/sbin/sshd"]
)。一种方法是用(我的入口点脚本的最后一行)结尾的入口点脚本:
exec "$@"
根据上述情况,尽管发出了看似正确的命令(/usr/sbin/sshd
),但容器仍然存在的原因之一是您的入口点可能会覆盖/使其无法运行。