首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在docker容器中安装ssh

在docker容器中安装ssh
EN

Stack Overflow用户
提问于 2016-11-25 17:20:41
回答 1查看 20.5K关注 0票数 15

我有一台托管docker容器的ubuntu机器。在docker容器中,我正在运行一个web服务,它必须用docker主机的/etc/password验证用户的密码。

我的观点是从docker容器ssh到docker host。因此,当我在docker容器中运行ssh命令时,它显示ssh not found。因此,基本上ssh没有安装在容器中。如何在容器中安装ssh。有什么方法可以完成这个场景吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-25 18:21:29

作为镜像文件的一部分,您只需安装openssh-server:

代码语言:javascript
运行
复制
sudo apt-get install openssh-server

那么问题就出在传统上,一个正在运行的docker容器只能运行一个命令。你可以通过使用像supervisord这样的工具来解决这个问题。docker文档中有一个示例:https://docs.docker.com/engine/admin/using_supervisord/

您的dockerfile可能如下所示:

代码语言:javascript
运行
复制
FROM ubuntu:16.04
MAINTAINER examples@docker.com

RUN apt-get update && apt-get install -y openssh-server apache2 supervisor
RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

EXPOSE 22 80
CMD ["/usr/bin/supervisord"]

您的supervisord.conf可能如下所示:

代码语言:javascript
运行
复制
[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:apache2]
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40801417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档