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 をインストールした後、このコマンドの使用を確認できます。
#nsenter は、別のプロセスの名前空間にアクセスできます。したがって、コンテナに接続するには、コンテナの最初のプロセスの PID も取得する必要があります。 docker Inspection コマンドを使用して PID を取得できます。
docker Inspection コマンドは次のように使用します。
$ sudo docker inspect --help
ログイン後にコピー
inspect コマンドは、イメージまたはコンテナーに関する情報を階層的に表示できます。たとえば、現在実行中のコンテナがあります。
docker Inspection を使用して、コンテナーの詳細を表示できます。
$ sudo docker inspect 44fc0f0582d9
ログイン後にコピー
情報が多いため、ここでは一部のみをキャプチャして表示します。コンテナの最初の PID を表示したい場合は、次のメソッドを使用できます。
$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9
ログイン後にコピー
プロセスの 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
ログイン後にコピー
次に、このコマンドを使用して、すでに実行中のコンテナに入ります
$ sudo docker ps
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash
ログイン後にコピー
関連する推奨事項:
docker チュートリアル
以上がDockerコンテナに入るにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。