【发布时间】:2018-03-22 02:58:58
【问题描述】:
我是docker新手,一直在玩hub.docker.com中的docker镜像
我想在容器中添加 ssh 服务。我可以apt-get install 打包(在apt-get update 之后),但我不知道如何启动它。
通常(不在此容器中),我们可以通过service ssh start 的常规命令启动服务。但我不知道如何在容器中执行此操作而不干扰ENTRYPOINT 和CMD 机制。
dockerfile 附带一个docker-entrypoint.sh(参见源代码here),它几乎希望有一行CMD
CMD ["mysqld"]
我已经阅读了一些相关的 SO 文章,例如:
- How to automatically start a service when running a docker container?
- Start sshd automatically with docker container
但由于 docker 文件中 ENTRYPOINT 和 CMD 的相互作用,它们在这里并不直接适用。
【问题讨论】:
-
为什么需要这样做?用于打开连接到服务器的sql客户端?
-
是的,我希望 sql 客户端通过端口 22 进来。然后数据包将被转发到端口 3306。
-
如果你使用
docker run -p选项发布服务器端口,你可以从你的主机操作系统连接到mysql -
我只想向远程机器开放端口 22 (ssh) 而不是端口 3306 (mysql)。有可能实现吗?换句话说,我希望能够在容器内启动一个 sshd。