2016-11-04 6 views
0

は、私は株のほとんどを理解し、このドッキングウィンドウfileこのドッカーファイルの説明?

FROM ubuntu:trusty 
MAINTAINER Wurstmeister 
RUN apt-get update; apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server 
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64/ 
RUN echo 'root:wurstmeister' | chpasswd 
RUN mkdir /var/run/sshd 
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config 

EXPOSE 22 

を理解しようとしていますが、私はライン以下これらが何を意味するのか理解していませんか?

apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server 
echo 'root:wurstmeister' | chpasswd 
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config 

誰でも分かりますか?私はその行にwget supervisor docker.io openssh-serverの目的が何であるか分かりません。また、エコーの意味は?そして、最後にもsedを続けます。

答えて

6
apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server 

はUbuntuのパッケージマネージャを使用して、パッケージの束をインストール(ベース画像は、Ubuntuのトラスティ14.04です)。

-yオプションを使用すると、aptはパッケージのインストールとその依存関係に関する確認をユーザーに要求しないようにすることができます。入力は必要ありません。これは、ドッカー画像を構築するプロセスを停止するのを避けるために必要です。パッケージインストール:

  • のopenssh-サーバー:コンテナはSSHクライアントからのSSHサーバおよびプロセスの要求として機能することができるよう
  • wgetを、解凍します:ユーティリティ
  • のjava:最終的にはこのコンテナは、ユーザーを可能にするために使用されますssh経由でそれにアクセスするには、多分、それらのユーザーは、java
  • 監督、docker.io必要があります。その後、私はDockerfile自体

での直接的な使用法が表示されていないが

sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config 

から

echo 'root:wurstmeister' | chpasswd 

ユーザーrootの変更パスワードは、rootユーザーがパスワードでか(例えば、公開鍵付き)なしでログインできるようにするために、ファイル/etc/ssh/sshd_configPermitRootLogin yesでテキストPermitRootLogin without-passwordを置き換えます。

重要な一般的な注記:If you run SSHD in your Docker containers, you're doing it wrong!

+0

あなたは正しくありませんか? 'rootユーザーがパスワードでログインできるようにする' – john

+0

@david、oops、それを修正します。しかし、その変更は、パスワードなしでだけでなく、rootのログインを許可することを意味します。 –

2

wget supervisor docker.io openssh-serverは、apt-getコールのパラメータです。それらはインストールされるパッケージの名前です。

echoは、|と組み合わせて、chpasswdコマンドに新しいパスワードを送信します。

sedは、設定ファイル(ここではパスワードなしのログインを許可する)のテキストを更新するために使用されます。 s/text/newText/部分はテキスト置換を行います。