違い: 1. 「docker run」の操作オブジェクトは「ミラー」ですが、「docker exec」の操作オブジェクトは「コンテナ」です; 2. 「docker run」はコンテナがない状況に適していますが実行されており、「docker exec」は既存のコンテナーでコマンドを実行するのに適しています。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
##docker run:イメージに基づいてコンテナーを作成するコマンドを実行します。操作のオブジェクトは mirror;
docker exec: です。実行中のコンテナ内 コマンド実行時の操作対象は container です。
「docker run」は通常、新しく作成されたコンテナーで使用されるコマンドです。これは、コンテナーが実行されていないが、コンテナーを作成して起動し、その上でプロセスを実行する必要がある状況に適しています。 「docker exec」は、既存のコンテナーでコマンドを実行するのに適しています。すでに実行中のコンテナーがあり、それを変更したり、コンテナーから何かを取得したりする場合は、「docker exec」コマンドを使用するのが最適です。docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin: 標準入出力のコンテンツ タイプ (オプションの STDIN/STDOUT/STDERR) を指定します。
: コンテナをバックグラウンドで実行し、コンテナ ID を返します;
:対話する コンテナを実行するモード、通常 -t とともに使用;
: ランダム ポート マッピング、コンテナ内部ポートRandomホストの上位ポートにマッピング
:ポート マッピングを指定します。形式は次のとおりです: ホスト (ホスト) ポート:コンテナ ポート
:擬似入力ターミナルをコンテナに再割り当てします (通常は -i と一緒に使用します;
: コンテナの名前を指定します;
: 使用する DNS サーバーを指定しますデフォルトでホストと一致するコンテナー別;
: コンテナーの DNS を指定します検索ドメイン名 (デフォルトはホストと同じ)
: コンテナーのホスト名を指定します。
: 環境変数を設定します;
: 指定されたファイルから環境変数に読み込まれます;
: 実行する指定された CPU にコンテナをバインドします;
コンテナが使用する最大メモリを設定します;
コンテナのネットワーク接続タイプを指定し、ブリッジ/ホスト/なし/コンテナをサポート:
--expose=[]
--volume , -v
#インスタンス
docker run --name my-nginx -p 8081:80 -d nginx:latest
docker run -P -d nginx:latest
使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data:
docker run -p 80:80 -v /data:/data -d nginx:latest
使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令:
docker run -it nginx:latest /bin/bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d : 分离模式: 在后台运行
-i : 即使没有附加也保持STDIN 打开
-t : 分配一个伪终端
在容器名称 my-nginx 中开启一个交互模式的终端:
docker exec -it my-nginx /bin/bash
或者使用容器ID 721eb23901ce 开启一个交互模式的终端:
docker exec -it 721eb23901ce /bin/bash
推荐学习:《docker视频教程》
以上がdocker run と docker exec コマンドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。