ホームページ  >  記事  >  運用・保守  >  Dockerコンテナに入るにはどのような方法がありますか?

Dockerコンテナに入るにはどのような方法がありますか?

王林
王林転載
2020-11-16 16:27:313680ブラウズ

Dockerコンテナに入るにはどのような方法がありますか?

Docker コンテナに入る方法はたくさんありますが、ここでは、Docker コンテナに入る一般的に使用されるいくつかの方法に焦点を当てます。

(学習ビデオ共有: php ビデオ チュートリアル)

Docker コンテナに入る一般的な方法のいくつかは次のとおりです。

  • dockerattach を使用します

  • SSH を使用します

  • nsenter を使用します

  • exec# を使用します

##1. dockerattach を使用して Docker コンテナに入る

Docker には、Docker コンテナに入る Attach コマンドが用意されています。

次に、デーモン Docker コンテナーを作成し、dockerattach コマンドを使用してコンテナーに入ります。

$ sudo docker run -itd ubuntu:14.04 /bin/bash

次に、 docker ps を使用してコンテナー情報を表示し、 dockerattach を使用してコンテナーに入ります。

$ sudo docker attach 44fc0f0582d9

コンテナーに入っていることがわかります。

しかし、このコマンドの使用には問題があります。複数のウィンドウがこのコマンドを使用して同時にコンテナーに入ると、すべてのウィンドウが同時に表示されます。 1 つのウィンドウがブロックされると、他のウィンドウは操作できなくなります。

このため、 dockerattach コマンドは運用環境には適していませんが、独自のアプリケーションを開発する場合には、このコマンドを使用できます。

2. SSH を使用して Docker コンテナに入る

dockerattach コマンドを使用して本番環境のコンテナに入るということを除いた後、誰もが最初に考えるのは ssh だと思います。 SSH サーバーをイメージ (またはコンテナー) にインストールし、複数の人が互いに干渉せずにコンテナーに入ることができるようにします。現在の運用環境では (Docker を使用せずに) 誰もがこれを行っていると思います。ただし、Docker コンテナを使用した後に ssh を使用して Docker コンテナに入るのは推奨されません。

3. nsenter を使用して Docker コンテナに入る

上記 2 つの方法が適切でない場合は、nsenter を使用して Docker コンテナに入る、より便利な方法があります。

nsenter が何であるかを理解すると、システムは必要な nsenter をデフォルトでホストにインストールします。

インストールされていない場合は、以下の手順に従ってインストールしてください (インストールされていないことに注意してください)はホストであり、コンテナやミラーではありません)

具体的なインストール コマンドは次のとおりです:

$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz  
$ tar -xzvf util-linux-2.24.tar.gz  
$ cd util-linux-2.24/  
$ ./configure --without-ncurses  
$ make nsenter  
$ sudo cp nsenter /usr/local/bin

nsenter をインストールした後、このコマンドの使用を確認できます。

Dockerコンテナに入るにはどのような方法がありますか?

#nsenter は、別のプロセスの名前空間にアクセスできます。したがって、コンテナに接続するには、コンテナの最初のプロセスの PID も取得する必要があります。 docker Inspection コマンドを使用して PID を取得できます。

docker Inspection コマンドは次のように使用します。

$ sudo docker inspect --help

inspect コマンドは、イメージまたはコンテナーに関する情報を階層的に表示できます。たとえば、現在実行中のコンテナがあります。

Dockerコンテナに入るにはどのような方法がありますか?

docker Inspection を使用して、コンテナーの詳細を表示できます。

$ sudo docker inspect 44fc0f0582d9

Dockerコンテナに入るにはどのような方法がありますか?

情報が多いため、ここでは一部のみをキャプチャして表示します。コンテナの最初の PID を表示したい場合は、次のメソッドを使用できます。

$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9

Dockerコンテナに入るにはどのような方法がありますか?

プロセスの PID を取得した後、nsenter コマンドを使用してアクセスできます。コンテナ。

$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid  
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid

3326 は、取得したばかりのプロセスの PID です。

4. docker exec を使用して Docker コンテナに入る

上記の方法に加えて、docker はバージョン 1.3.X 以降、コンテナに入る新しいコマンド exec も提供します。このコマンドの使用法を見てみましょう:

$ sudo docker exec --help

Dockerコンテナに入るにはどのような方法がありますか?

次に、このコマンドを使用して、すでに実行中のコンテナに入ります

$ sudo docker ps  
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash

関連する推奨事項:

docker チュートリアル

以上がDockerコンテナに入るにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。