web-dev-qa-db-ja.com

docker official Centos imageのデフォルトのrootパスワードは何ですか

これはDocker公式のCentos6およびCentos7イメージに関するものです

3つの別個の関連する質問があります。
(1)「docker RUN centos」の使用を開始したとき、ルートパスワードとは何ですか。
(2)派生イメージ(Dockerfile FROMエントリを使用して公式のdocker centosから派生したイメージ)から開始した場合、ルートパスワードとは何ですか?
(3)どちらの場合も、答えが「Dockerfile内でrootパスワードを設定する必要がある」である場合、それを設定するための最良の推奨方法は何ですか。 (「yum install passwd; passwd;」は1つのオプションですが、これはベストプラクティスですか?)

どうもありがとうございました!

9
Tim

Dockerコンテナー内でrootパスワードを設定するには:

  1. Rootとしてログイン:docker exec -ti -u root containerID/bin/bash
  2. パスワードを変更するには、passwdコマンドを使用します。
  3. Dockerで変更をコミットします(つまり、docker commit)。
13
Darryl Blonski

(1):わかりませんが、それは問題ではありません。 docker run -it centosを実行すると、新しいコンテナが開始され、すぐにrootとしてその中にいます。次に、インタラクティブにpasswdを使用して新しいrootパスワードを設定できます。しかし、これはまれなユースケースであり、主にコンテナーへの最初のステップで使用されます。

(2):誰かがベースイメージから派生している場合は、そのためのDockerfileを取得してください。そうすれば、彼が設定したパスワードとそのパスワードを調べることができます。そのDockerfileが利用できない場合、他に何が画像に焼き付けられるかわからないので、画像全体の品質について個人的に質問します。あなたの走行距離は異なる場合があります。いずれの場合でも、そのイメージから順番に取得し、さらに別のrootパスワードを設定できます。

(3):passwdを使用した提案された方法は十分に公正ですが、コンテナに固定パスワードを実装することは、とにかく私にとって間違っていると感じます。コンテナは1つのタスクを実装する必要があり、事実上ログインする必要はありません。例外的なトラブルシューティングセッションでは、「docker attach」または「docker exec」を使用して、Docker Hostからいつでもコンテナーにアクセスできます。本当にコンテナーにログインする必要がある場合は、ssh公開鍵を~/.ssh/authorized_keysに配置して、コンテナーにアクセスする外部(対応する秘密ssh鍵にアクセスできる人)から制御できるようにします。

3
Nils Magnus