[解決済み] Dockerコンテナにユーザーを追加する方法は?
質問
私は、いくつかのプロセス(uwsgiとcelery)が内部で実行されているドッカーコンテナを持っています。私は、これらのプロセスのためにceleryユーザーとuwsgiユーザーを作成し、権限を割り当てるために、それらが両方とも属するワーカーグループを作成したいと思っています。
を追加してみました。
RUN adduser uwsgi
と
RUN adduser celery
をDockerfileに追加しましたが、これらのコマンドは入力を求めるため、問題が発生しています (以下にビルド時の応答を掲載します)。
Docker コンテナにユーザーを追加して、コンテナ内で実行するワーカーのパーミッションを設定する最良の方法は何ですか?
私のDockerイメージは、公式のUbuntu14.04のベースからビルドされています。
以下は、adduserコマンドを実行したときのDockerfileの出力です。
Adding user `uwsgi' ...
Adding new group `uwsgi' (1000) ...
Adding new user `uwsgi' (1000) with group `uwsgi' ...
Creating home directory `/home/uwsgi' ...
Copying files from `/etc/skel' ...
[91mEnter new UNIX password: Retype new UNIX password: [0m
[91mpasswd: Authentication token manipulation error
passwd: password unchanged
[0m
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 563.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 564.
[0m
Try again? [y/N]
Changing the user information for uwsgi
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []: Work Phone []: Home Phone []: Other []:
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.
[0m
Is the information correct? [Y/n]
---> 258f2f2f13df
Removing intermediate container 59948863162a
Step 5 : RUN adduser celery
---> Running in be06f1e20f64
Adding user `celery' ...
Adding new group `celery' (1001) ...
Adding new user `celery' (1001) with group `celery' ...
Creating home directory `/home/celery' ...
Copying files from `/etc/skel' ...
[91mEnter new UNIX password: Retype new UNIX password: [0m
[91mpasswd: Authentication token manipulation error
passwd: password unchanged
[0m
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 563.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 564.
[0m
Try again? [y/N]
Changing the user information for celery
Enter the new value, or press ENTER for the default
Full Name []: Room Number []: Work Phone []:
Home Phone []: Other []:
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.
[0m
Is the information correct? [Y/n]
解決方法は?
そのコツは
useradd
の代わりに、対話型ラッパーである
adduser
.
でユーザーを作るのが普通です。
RUN useradd -ms /bin/bash newuser
で、ユーザーのホームディレクトリを作成し、bashがデフォルトシェルになるようにします。
その後、追加することができます。
USER newuser
WORKDIR /home/newuser
をdockerfileに追加してください。その後のすべてのコマンド、および対話型セッションは、ユーザ
newuser
:
docker run -t -i image
newuser@131b7ad86360:~$
を与える必要があるかもしれません。
newuser
を実行する前に、実行しようとするプログラムを実行するためのパーミッションが必要です。
コンテナ内で非特権ユーザーを使用することは、セキュリティ上の理由から良いアイデアです。しかし、これにはいくつかの欠点があります。最も重要なのは、あなたのイメージからイメージを派生させる人は、スーパーユーザー特権でコマンドを実行する前に、rootに戻らなければならないことです。
関連
-
Linux Mintのシステムバージョン情報はどこにありますか? Linux Mint のシステム情報を見るためのヒント
-
[解決済み] mkdirのオプションが明確でない
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
LinuxでSteamをダウンロードしインストールする方法
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Linux Mintのシステムバージョン情報はどこにありますか? Linux Mint のシステム情報を見るためのヒント
-
[解決済み] cronは内部でどのようにジョブをスケジューリングしているのですか?
-
[解決済み] mkdirのオプションが明確でない
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] エクスポートあり/なしの変数の定義
-
[解決済み] ls を使用してディレクトリとその合計サイズを一覧表示する