apache - 在Alpine上运行Apache之后的SSH docker容器问题

标签 apache docker ssh alpine

我在使用Docker容器的SSH session 中遇到问题。
实际上,由于正在运行的进程永远无法在终端上提供帮助,因此实际上无法执行任何命令,请参见输出:

[Thu Apr 02 19:39:46.056749 2020] [mpm_prefork:notice] [pid 7] AH00163: Apache/2.4.43 (Unix) PHP/7.3.16 configured -- resuming normal operations
[Thu Apr 02 19:39:46.057465 2020] [core:notice] [pid 7] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

Dockerfile在Alpine上安装Apache并结束:
ENTRYPOINT [ "/opt/entrypoint.sh" ]

entrypoint.sh:
/usr/sbin/httpd -D FOREGROUND

有什么提示可以使我的SSH session 正常工作并帮助我执行其他命令吗?谢谢。

最佳答案

容器范例不会促进诸如ssh服务器之类的东西的使用。核心概念是您仅在容器内部托管单个隔离的进程,在本例中为“httpd”。

换句话说,apache容器中没有运行ssh服务器,它仅托管Web服务器进程。

您可以使用类似docker exec <container_name> <command>的命令在同一容器中执行另一个进程。例如:

docker exec myhttpd ls -la

它将列出容器中已配置工作目录的内容。
docker exec将当前终端 session 中的stdout和stderr连接到容器的stdout和stderr,并在容器的环境中执行命令。

这是解决问题和尝试解决问题的好方法。但是,如果您要永久更改所包含应用程序的环境,请寻找替代方法。例如使用Dockerfile。

如果您提供有关用例的更多信息,我将很乐意提出建议。

关于apache - 在Alpine上运行Apache之后的SSH docker容器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60999965/

相关文章:

amazon-web-services - 发布端口时,Swarm 中的 Docker 服务无法连接到 AWS RDS

apache - 完全隐藏服务器名称apache

docker - 无法获取我的Docker镜像的基本镜像

php - 将文件系统权限限制为 apache/php,除了日志记录操作

linux - 在端口 10334 连接到定位器的第二个 geode 容器的问题

ubuntu - 在 Ubuntu 上配置 SFTP 服务器以使用 PhpStorm 远程访问

git - 在 cron 作业中从 gitolite 中 pull

linux - 使用 ssh 在 shell 脚本中 undefined variable

apache - 欢迎使用 nginx!页面一直显示

php - OpenSSL header 版本 != 影响 APNS 的 HTTP/2 的 OpenSSL 库版本