docker-compose以ssh的交互模式启动容器

时间:2017-09-11 13:29:53

标签: docker ssh docker-compose

我的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

1 个答案:

答案 0 :(得分:0)

如果您的容器本身没有产生一个长时间运行的进程,docker-compose run将使其运行并立即退出。或者,您可以发出命令:

docker-compose run client sh

附加到打开的shell会话,使您进入交互模式。如果这不是您要查找的内容,则需要确保容器正确处理了指定的命令(command: ["/usr/sbin/sshd"])。一种方法是用(我的入口点脚本的最后一行)结尾的入口点脚本:

exec "$@"

根据上述情况,尽管发出了看似正确的命令(/usr/sbin/sshd),但容器仍然存在的原因之一是您的入口点可能会覆盖/使其无法运行。