前のDockerに続く このチュートリアルでは、Dockerコンテナを新しいイメージに保存し、コンテナを削除して、 Nginxを実行する方法について説明します。 コンテナ内のWebサーバー。
要件
- CentOS / RHEL 8/7にDockerをインストールしてコンテナを実行する方法–パート1
Dockerコンテナを実行して保存する方法
1。 この例では、Ubuntuベースを実行して保存します Nginxが存在するDockerコンテナ サーバーがインストールされます。ただし、コンテナに変更をコミットする前に、まず Nginxを更新してインストールする以下のコマンドでコンテナを起動します Ubuntuイメージへのデーモン:
#docker run ubuntu bash -c "apt-get -y update" #docker run ubuntu bash -c "apt-get -y install nginx"
エラー「E:パッケージnginxが見つかりません」が表示された場合 ‘、次に、インタラクティブCLIを使用してコンテナに接続し、図のようにnginxをインストールする必要があります。
#docker run -it ubuntu bash#apt install nginx#exit
2。 次に、 Nginxの後 パッケージがインストールされたら、コマンドdocker ps -l
を発行します IDを取得するには または名前 実行中のコンテナの。
#docker ps -l </ pre>そして、以下のコマンドを実行して変更を適用します:
#docker commit 5976e4ae287c ubuntu-nginxここでは、
5976e4ae287c
コンテナのID
を表します およびubuntu-nginx
コミットされた変更で保存された新しいイメージの名前を表します。新しいイメージが正常に作成されたかどうかを確認するには、
docker images
を実行するだけです。 コマンドと保存されているすべての画像のリストが表示されます。#docker imagesコンテナ内のインストールプロセスが迅速に終了し、コンテナが実行されなくなる(コンテナが停止する)可能性があります。この場合、
docker ps
コンテナが実行されていないため、コマンドは出力を表示しません。コンテナのIDを引き続き取得できるようにするには、
docker ps -a | head -3
最新のコンテナを出力し、コンテナを作成するために発行されたコマンドと終了ステータスに基づいてコンテナを識別します。3。 または、
docker run -it ubuntu bash
を実行して、コンテナセッションに積極的に参加することもできます。 コマンドを実行し、さらにapt-get install nginx
を実行します 指図。コマンドの実行中に、Ctrl-p + Ctrl-q
を使用してコンテナからデタッチします Nginxのインストールプロセスが終了しても、キーとコンテナは実行を継続します。#docker run -it ubuntu bash#apt-get install nginx次に、
docker ps
を使用して実行中のコンテナIDを取得します 変更をコミットします。終了したら、docker attach
を使用してコンテナコンソールに再入力しますexit
と入力します コンテナを停止します。#docker ps#docker attach 3378689f2069#exit4。 最近のイメージが適切にコミットされているかどうかをさらにテストするには(この場合は Nginx サービスがインストールされています)、Nginxバイナリが正常にインストールされた場合に出力される新しいコンテナを生成するには、次のコマンドを実行します。
#docker run ubuntu-nginx whereis nginx5。 コンテナを削除するには、
rm
を使用しますdocker ps -a
を使用して取得できるコンテナIDまたは名前に対するコマンド コマンド:#docker ps -a#sudo docker rm 36488523933aDockerコンテナ内でNginxを実行する方法
6。 このパートでは、 Nginxなどのネットワークサービスを実行してアクセスする方法に焦点を当てます。
ubuntu-nginx
を使用するDocker内のWebサーバー Nginxデーモンがインストールされた場所で以前に作成されたイメージ。最初に行う必要があるのは、新しいコンテナを作成し、ホストコンテナポートをマップし、次のコマンドを発行してコンテナシェルに入る方法です。
#docker run -it -p 81:80 ubuntu-nginx / bin / bash#nginx&ここで、
-p
オプションは、ホストポートをコンテナポートに公開します。ホストポートは任意である可能性がありますが、使用可能である(他のホストサービスがリッスンしてはならない)という条件で、コンテナポートは内部デーモンがリッスンしているポートである必要があります。コンテナセッションに接続したら、 Nginxを開始します バックグラウンドでデーモンを作成し、
Ctrl-p + Ctrl-q
を押してコンテナコンソールからデタッチします。 キー。7。 次に、
docker ps
を実行します 実行中のコンテナの状態を取得します。次のコマンドを発行して、ホストネットワークソケットを表示することもできます。#docker psOR#netstat -tlpn8。 Nginxコンテナが提供するページにアクセスするには、LAN内の離れた場所からブラウザを開き、HTTPプロトコルを使用してマシンのIPアドレスを入力します。
9。 コンテナを停止するには、次のコマンドに続けてコンテナIDまたは名前を実行します。
#docker ps#docker stop fervent_mccarthy#docker ps実行中のコンテナを停止する別の方法として、コンテナシェルコマンドプロンプトを入力し、exitと入力してプロセスを終了します。
#docker attach fervent_mccarthy#exitこの種のコンテナを使用してWebサーバーまたは他の種類のサービスを実行することは、コンテナの実行中にのみサービスがアクティブになるため、開発目的またはテストにのみ最適であることに注意してください。コンテナを終了すると、実行中のすべてのサービスまたは行われた変更が中断されます。
参考資料:
パート3 :CentOS / RHEL8/7パート4でDockerfileを使用してDockerイメージを自動的に構築および構成する :LinuxでDockerコンテナを監視する方法
Dockerfileを使用してカスタムDockerイメージを自動的に構築および構成する方法–パート3 Dockerをインストールし、CentOSおよびRHEL 8/7で基本的なコンテナー操作を学ぶ–パート1Docker