docker では、新しいコンテナを作成してコマンドを実行するために run コマンドが使用されます。パラメータ "-t" を設定すると疑似入力端子をコンテナに再割り当てでき、パラメータ "-d" を設定すると、コンテナをバックグラウンドで実行し、コンテナ ID を返します。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
docker run: 新しいコンテナーを作成してコマンドを実行します
Syntax
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS description:
-a stdin: 標準入力および出力コンテンツ タイプ、オプションの STDIN/STDOUT/STDERR を指定します;
-d : バックグラウンドでコンテナを実行し、コンテナ ID を返します;
-i: 対話モードでコンテナを実行し、通常は -t とともに使用します;
-P: ランダム ポート マッピング。コンテナの内部ポートはホストのポートにランダムにマッピングされます。
-p: ポート マッピングを指定します。形式は次のとおりです: ホスト (ホスト) ポート:container port
-t: 疑似入力ターミナルをコンテナに再割り当てし、通常 -i;
--name= と一緒に使用します。 "nginx-lb": コンテナーの名前を指定します;
--dns 8.8.8.8: コンテナーによって使用される DNS サーバーを指定します (デフォルトではホストと同じです)。
-- dns-search example.com: デフォルトでホストと一致するコンテナ DNS 検索ドメイン名を指定します;
-h "mars": コンテナーのホスト名を指定します;
-e username="ritchie": 環境変数を設定します;
- -env-file=[]: 指定されたファイルから環境変数を読み取ります;
--cpuset="0-2" または --cpuset="0,1,2":実行する指定された CPU にコンテナをバインドします;
-m :コンテナによって使用される最大メモリを設定します;
--net= "bridge": コンテナのネットワーク接続タイプを指定します。ブリッジ/ホスト/なし/コンテナの 4 種類をサポートします。
--link=[]: 別のコンテナへのリンクを追加します。 ;
--expose=[]: ポートまたはポートのグループを開きます ;
--ボリューム、-v: バインドvolume
例:「バックグラウンドでミラーを実行したい」場合、次のコマンド
docker run -d --name server somebody:dockerfile
を実行するときに、操作が成功したかどうかを確認します。 docker ps を実行しましたが、正常に実行されていません。どのような状況ですか? ?バックグラウンドで実行するには -d パラメータを使用する必要はないでしょうか?実際、主な理由は、
CMD ["/bin/bash"]
と同様に、このイメージの最後に CMD が追加されている可能性があることです。つまり、バックグラウンドで実行すると、このイメージによって作成されたコンテナーが最初に /bin を実行します。 /bash、これはバックグラウンドで実行する場合を意味します。実行中 (-d)、シェルはすぐに終了します。そのため、コマンドがフォアグラウンドで実行されていない限り、コンテナーはすぐに停止します
解決策
-d から -i または -t
docker run -i -d images:tags docker run -t -d images:tags docker run -itd images:tags
docker run -d centos tail -f /dev/null
docker run -i -t <images:tags>
docker ビデオ チュートリアル 」
以上がdocker の run コマンドの t と d の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。