ホームページ  >  記事  >  運用・保守  >  docker run と docker exec コマンドの違いは何ですか?

docker run と docker exec コマンドの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2021-11-25 16:44:2910871ブラウズ

違い: 1. 「docker run」の操作オブジェクトは「ミラー」ですが、「docker exec」の操作オブジェクトは「コンテナ」です; 2. 「docker run」はコンテナがない状況に適していますが実行されており、「docker exec」は既存のコンテナーでコマンドを実行するのに適しています。

docker run と docker exec コマンドの違いは何ですか?

このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

docker run と docker exec の違い


##docker run:イメージに基づいてコンテナーを作成するコマンドを実行します。操作のオブジェクトは mirror;

docker exec: です。実行中のコンテナ内 コマンド実行時の操作対象は container です。

「docker run」は通常、新しく作成されたコンテナーで使用されるコマンドです。これは、コンテナーが実行されていないが、コンテナーを作成して起動し、その上でプロセスを実行する必要がある状況に適しています。

「docker exec」は、既存のコンテナーでコマンドを実行するのに適しています。すでに実行中のコンテナーがあり、それを変更したり、コンテナーから何かを取得したりする場合は、「docker exec」コマンドを使用するのが最適です。


#docker run コマンド

構文

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
オプション説明:

  • -a stdin: 標準入出力のコンテンツ タイプ (オプションの STDIN/STDOUT/STDERR) を指定します。

  • ##-d

    : コンテナをバックグラウンドで実行し、コンテナ ID を返します;

  • -i

    :対話する コンテナを実行するモード、通常 -t とともに使用;

  • -P

    : ランダム ポート マッピング、コンテナ内部ポートRandomホストの上位ポートにマッピング

  • -p

    :ポート マッピングを指定します。形式は次のとおりです: ホスト (ホスト) ポート:コンテナ ポート

  • -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"
  • :

    コンテナのネットワーク接続タイプを指定し、ブリッジ/ホスト/なし/コンテナをサポート:335a154c0208f0223836dc6056f09ba1 4 つのタイプ タイプ;

    ##-- link=[]
  • :
  • 別のコンテナへのリンクを追加します;

    --expose=[]
  • :
  • 開くポートまたはポートのグループ;

    --volume , -v
  • :
  • ボリュームをバインド

    #インスタンス

  • docker イメージ nginx:latest を使用してバックグラウンド モード コンテナーで起動し、コンテナーに my-nginx という名前を付けます。
docker run --name my-nginx -p 8081:80 -d nginx:latest

ブラウザは http://ホスト IP:8081 にアクセスします。その結果は次のようになります:

#ミラーを使用するnginx: 最新はバックグラウンド モードでコンテナを起動し、コンテナのポート 80 をホスト上のランダム ポートにマップします:

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 命令

语法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。