Docker入門 第4回 コンテナの基本 コンテナの作り方と使い方、管理方法

Docker基礎

第4回では、コンテナの作成、起動、停止、削除の一連の流れを学びます。
「docker container run」コマンドによるコンテナの起動と、「docker ps」コマンドによるコンテナの状態確認は頻繁に使うので、使い方やオプションを覚えましょう。

このページからわかること
・コンテナの操作方法
作成・起動・停止・削除
・コンテナ操作のコマンドの使い方

今回行うこと

今回は例として、nginxのコンテナの起動から削除まで一連の手順を実行します。

Step1 コンテナの作成

実際にコンテナの作成と起動を行いましょう。コンテナの作成と起動は「docker container run」コマンドです。
以下のコマンドを入力して実行してみましょう。オプションの意味は後ほど説明します。
※「docker run」コマンドでも可。

ホストPCのターミナル : nginxコンテナの起動
% docker container run -d –name nginx-test –publish 8080:80 nginx

実行すると、イメージのダウンロードが始まります。
※nginxのイメージを持っていない場合、Docker Hubからnginxイメージをダウンロードが始まる。

しばらくするとダウンロードは完了して、nginxコンテナの起動が完了します。

docker container run コマンドの実態

docker container runを実行すると、何故イメージのダウンロードが始まるのでしょうか?
実は、docker container runコマンドは、内部では次の3つのコマンドが実行されています。
① docker image pull [イメージの取得]
② docker container create [コンテナの作成]
③ docker container start [コンテナの起動]

そのため、起動するイメージが無い場合は「docker image pull」コマンドによってDocker Hubからイメージをダウンロードする動きとなっています。

docker container run コマンドのオプション

docker conatiner runコマンドのオプションの詳細は以下の記事を参照してください。

今回はよく使用するオプションを説明します。

オプション 内容
–name コンテナ名を指定する。
–name コンテナ名
-p (–publish) ポート番号を指定する。
–p ホストのポート番号:コンテナのポート番号
-d (–detache) バッググラウンドプロセスでコンテナを起動する
–rm コンテナ停止時、コンテナを自動で削除する
-i (–interactive) キーボード操作を行う。
通常は「-it」と続けて指定することが多い
-t (–tty)

先ほど実行したコマンドのオプションの意味は次のとおりです。

コンテナ作成で実行したコマンド
% docker container run -d –name nginx-test –publish 8080:80 nginx

・”-d”:nginxコンテナをバッググランドで実行
・”–name”:コンテナ名を「nginx-test」に設定
・”–publish”:nginxの公開ポート番号を”8080″へ設定

コンテナ名を元に、コンテナの状態確認を行うので、わかりやすいコンテナ名を設定しましょう。

ホストマシンとコンテナの通信

nginxコンテナを起動する際に”–publish”オプションを設定しています。

publishオプションの例
–publish 8080:80

ホストマシンからnginxコンテナに対して、ブラウザでアクセスするためには「ポート」の設定が必要です。nginxはポート80番でWebサイトのアクセスを待ち構えています。
しかし、コンテナの中のnginxは、直接外とつながっていないため通信はできません。

そこで、ホストマシンにWebサイト閲覧者からの要求を受けてもらい、コンテナへ伝えてもらうことにします。具体的には、ホストマシンのポート8080とコンテナのポート80を繋ぎます。この設定が-p(–publish)オプションです。

ちなみに、nginxコンテナを複数を起動する(複数のWebサーバを立てる) 場合は、ホストマシンのポート番号をずらして設定します。

Step2 コンテナの起動確認

Step1でnginxのコンテナを起動しました。起動していることを「docker ps」コマンドで確認しましょう。

ホストPCのターミナル : docker ps コマンドの実行
% docker ps
CONTAINER ID    IMAGE    STATUS        PORTS                            NAMES
372fa99f0c3b     nginx      Up 9 hours   0.0.0.0:8080->80/tcp   nginx-test

「docker ps」コマンドを実行すると、次のような結果が表示されます。
コンテナの状態は頻繁に確認するので、各フィールドの意味は覚えましょう。

「STATUS」が”Up”になっていれば、nginxコンテナは起動できています。

Step3 ブラウザでアクセス

Step2でnginxコンテナの起動が確認できたので、nginxのWebサーバへアクセスしましょう。ChromeやEdgeなどのブラウザのURL欄に以下を入力してアクセスしてください。
localhost:8080

次のような画面が表示されることを確認してください。

 

Step4 コンテナの停止と削除

nginxのWebサーバへアクセスできたら、今回の目的は達成できたので、不要になったnginxコンテナを削除ます。
コンテナを削除するためには、コンテナを停止する必要があります。

ホストPCのターミナル : コンテナの停止
% docker container stop nginx-test

※”nginx-test”はコンテナ名です。

次に、docker psコマンドで停止の状態を確認します。
“-a”オプションを付けることを忘れずに。

ホストPCのターミナル : コンテナ停止の確認
% docker ps -a 
CONTAINER ID    IMAGE    STATUS                                       PORTS    NAMES
372fa99f0c3b     nginx      Exited (0) About a minute ago                  nginx-test

実行すると、STATUSが”Exited”になっていることを確認してください。

停止を確認後、docker container rmコマンドで、コンテナの削除を行います。

ホストPCのターミナル : コンテナの削除
% docker container rm nginx-test

Step5 コンテナの削除確認

最後に、nginxのコンテナが削除されていることを確認します。
次のように”nginx”のコンテナが表示されていなければ削除できています。

ホストPCのターミナル : コンテナ削除の確認
% docker ps -a 
CONTAINER ID    IMAGE    STATUS                                       PORTS    NAMES
①コンテナの起動は「docker container run」
コンテナ名を設定すること。–name オプション
②コンテナの状態確認は「docker ps」コマンド
STATUSが”Up”なら起動中、”Extited”なら停止中
③コンテナ削除は、停止→削除の順に行うこと
docker container stop → docker container rm
タイトルとURLをコピーしました