zukucode
主にWEB関連の情報を技術メモとして発信しています。

Docker Nginxを起動して基本的なコマンドを理解する

DockerNginxを動かすための作業メモです。

Dockerのインストールから基本的な使い方についてはDocker hello worldを実行して基本的な仕組みを理解するで紹介しています。

Dockerバージョンの確認

最初にインストールされているDockerのバージョンを確認します。

$ docker -v
Docker version 18.09.5, build e8ff056

Dockerイメージの取得

以下のコマンドでNginxのイメージを取得します。

最新(latest)のイメージをダウンロードしていることが確認できます。

$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx

--省略--

ダウンロードしたイメージを確認します。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              27a188018e18        2 weeks ago         109MB

コンテナの作成と実行

以下のコマンドでコンテナを作成して実行します。

コマンドのオプションについては後ほど解説します。

$ docker run -d -p 8080:80 nginx

起動中のコンテナを確認します。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
4312d625138d        nginx               "nginx -g 'daemon of…"   6 seconds ago       Up 5 seconds        0.0.0.0:8080->80/tcp   flamboyant_chandrasekhar

ブラウザでlocalhost:8080にアクセスするとWelcome to nginx!と表示されることを確認できます。

runコマンドのオプション

-dを指定するとデタッチモードで起動します。バックグラウンドで起動するため、常駐プログラムの場合に使用します。

-dを指定しないとコマンドが待機中の状態になってしまい、これ以外の処理が行えなくなってしまいます。

-pオプションでホスト側のポート番号とコンテナ側のポート番号を紐付けます。

「ホストのポート番号:コンテナのポート番号」の形式で指定します。

8080:80と指定すると、ホスト側のブラウザでlocalhost:8080にアクセスすると、コンテナ側のlocalhost:80が表示されます。

コンテナの停止

docker stop コンテナ名でコンテナを停止できます。

コンテナ名は先程実行したコマンドdocker psで確認できます。

$ docker container stop flamboyant_chandrasekhar

起動中のコンテナを確認し、先程のコンテナが停止していることが確認できます。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker runでコンテナを実行するときのオプション--nameを指定すれば、コンテナ名は自分でわかりやすい名前にすることができます。

$ docker run --name my-server -d -p 8080:80 nginx
$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
14ce17a17c83        nginx               "nginx -g 'daemon of…"   11 seconds ago      Up 10 seconds       0.0.0.0:8080->80/tcp   my-server
$ docker container stop my-server

停止したコンテナは削除されずに残っています。docker ps -aで停止中のコンテナも含めて表示できます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
14ce17a17c83        nginx               "nginx -g 'daemon of…"   14 minutes ago      Exited (0) 6 seconds ago                        my-server
4312d625138d        nginx               "nginx -g 'daemon of…"   26 minutes ago      Exited (0) 18 minutes ago                       flamboyant_chandrasekhar

停止したコンテナを再び実行する方法はDocker 停止中のコンテナを再び実行するで紹介しています。


関連記事