vis*_*rit 9 unix docker dockerfile
我有一台托管Docker容器的ubuntu机器.在docker容器中我正在运行一个Web服务,它必须使用docker主机的/ etc/password验证用户的密码.
我的观点是从docker容器ssh到docker主机.所以当我在docker容器中运行命令ssh时,它的ssh未找到.所以,基本上ssh没有安装在容器中.我如何在容器中安装ssh.有没有办法完成这种情况?
jax*_*orm 13
好吧,作为图像文件的一部分,您只需要安装openssh-server:
sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)
问题是传统上,正在运行的docker容器只运行一个命令.你可以通过使用supervisord之类的东西解决这个问题.docker docs中有一个例子:https://docs.docker.com/engine/admin/using_supervisord/
您的dockerfile可能如下所示:
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"]
Run Code Online (Sandbox Code Playgroud)
你的supervisord.conf看起来像这样:
[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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9744 次 |
| 最近记录: |