docker - 运行容器后自动启动 ssh 服务
问题描述
- 我正在研究一个用于创建 Android docker 映像的 Dockerfile。
- 创建镜像并运行容器后,我使用命令(service ssh status)检查了 ssh 服务,发现 ssh 服务没有运行。
我试图在 Dockerfile 上放置一些命令,例如:
- CMD ["/usr/sbin/sshd","-D"]
- 曝光 22
- 运行服务 ssh 启动
但是这些命令都不能在运行容器后运行 ssh 服务。
有人可以帮忙吗?
解决方案
我已经使用此链接中的步骤在 Docker 容器中成功运行了 SSH 服务。
以下是对我有用的 Dockerfile:
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:THEPASSWORDYOUCREATED' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
您还可以在 Docker Hub 上尝试以下 Docker 映像,以在容器内启用 SSH 服务器:
推荐阅读
- javascript - 根据日期颜色的块表列
- openacc - openacc 在 acc 计算区域内用 C++ 中的 pow 函数声明问题
- php - 在共享主机上部署我的 laravel 应用程序后出现 HTTP ERROR 500
- python - 无法从外部读取来自我的 pypi 包的文本文件
- c++ - 如何在非可变宏旁边定义可变宏?
- javascript - Bootstrap Selectpicker - 隐藏选择框并始终显示下拉菜单
- python - 传递给优化器的意外关键字参数:加载 keras 模型时的名称
- ionic-framework - StencilJS 上不允许使用离子输入文件组件
- masstransit - 在新的传奇中重新处理特定的公共交通消息并最终确定当前
- asp.net - Asp.Net 应用程序性能变差