1
我有一個託管碼頭集裝箱的Ubuntu機器。 和在碼頭集裝箱中,我正在運行一個Web服務,該服務必須通過碼頭主機的/ etc/password驗證用戶的密碼爲 。在碼頭集裝箱中安裝ssh
我認爲是從碼頭容器ssh碼頭主機。 因此,當我在碼頭容器中運行命令ssh它說ssh找不到。 所以,基本上ssh沒有安裝在容器中。 我如何在容器中安裝ssh。 有什麼辦法可以完成這個場景嗎?
我有一個託管碼頭集裝箱的Ubuntu機器。 和在碼頭集裝箱中,我正在運行一個Web服務,該服務必須通過碼頭主機的/ etc/password驗證用戶的密碼爲 。在碼頭集裝箱中安裝ssh
我認爲是從碼頭容器ssh碼頭主機。 因此,當我在碼頭容器中運行命令ssh它說ssh找不到。 所以,基本上ssh沒有安裝在容器中。 我如何在容器中安裝ssh。 有什麼辦法可以完成這個場景嗎?
那麼,作爲圖像文件的一部分,你只需要安裝openssh-server:
sudo apt-get install openssh-server
隨後的問題是,傳統上,正在運行的碼頭工人容器將只運行一個命令。你可以通過使用像supervisord這樣的東西解決這個問題。這裏有一個例子在泊塢窗文檔:https://docs.docker.com/engine/admin/using_supervisord/
你dockerfile可能是這樣的:
FROM ubuntu:16.04
MAINTAINER [email protected]
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可能是這個樣子:
[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"