Docker HubのNginxを使用してDockerを基本操作を一覧化する!

Docker HubのNginxを使用してDockerを操作して、よく使用するコマンドを一覧化します。

Docker HubのNginxのコンテナの使用方法を確認する!

Docker HubのNginxのページでコンテナの使用方法を確認します。

Docker HubからNginxのイメージをダウンロードして実行する!(docker run --rm)

「docker container run」コマンドを使用して、Nginxのイメージのダウンロードから実行まで(pull→create→start)を一気に行うことができます。今回は、コンテナ名を「nginx-01」とし、イメージ名は「nginx」を指定します。イメージ名にタグを指定しない場合は、「latest」タグの最新版がダウンロードされます。

$ docker container run --rm --name nginx-01 -p 8080:80 -d nginx

Nginxを起動したサーバ上で、以下のURLでアクセスすると、Nginxの「Welcome to nginx!」のページが表示されます。

http://localhost:8080

Nginxのコンテナを停止します。「docker container run」コマンドで、「--rm」オプションを指定したので、停止と同時にコンテナの削除も行われます。

$ docker container stop nginx-01 
nginx-01

Nginxのコンテナのイメージも削除します。

$ docker image rm nginx

これだけでは応用しづらいので、次節からの作業の流れで、自分で作成したHTMLを表示してみます。

Nginxで表示するHTMLを準備する!

最初に、HTMLファイルを準備します。

$ cat /home/usradmin/nginx/html/index.html
<html>
	<body>
		Docker Nginx Test Page!
	</body>
</html>

Docker HubからNginxのイメージをダウンロードして実行する!(docker run)

「docker run」コマンドを使用して、Nginxのイメージのダウンロードから実行までを一気に行いますが、今回は、「-v」オプションを使用して、自分で作成したHTMLが存在するディレクトリをNginxのコンテナにマウントします。

$ docker container run --name nginx-01 -p 8080:80 -v /home/usradmin/nginx/html:/usr/share/nginx/html:ro -d nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
3f4ca61aafcd: Pull complete 
50c68654b16f: Pull complete 
3ed295c083ec: Pull complete 
40b838968eea: Pull complete 
88d3ab68332d: Pull complete 
5f63362a3fa3: Pull complete 
Digest: sha256:0047b729188a15da49380d9506d65959cce6d40291ccfb4e039f5dc7efd33286
Status: Downloaded newer image for nginx:latest
ef5cbfda01d997c561f487015c6fd5999b592bc5f81d7b5b87c59fc78270e5fc

Nginxのコンテナのイメージがダウンロードされたことを確認する!(docker image ls)

「docker image ls」コマンドを使用して、Nginxのイメージを確認します。

$ docker image ls
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
nginx             latest    1403e55ab369   4 days ago    142MB

Nginxのコンテナが存在することを確認する!(docker container ps -a)

「docker container ps -a」コマンドを使用して、Nginxのコンテナを確認します。

$ docker container ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
ef5cbfda01d9   nginx                    "/docker-entrypoint.…"   3 minutes ago    Up 3 minutes    0.0.0.0:8080->80/tcp, :::8080->80/tcp                                                  nginx-01

Nginxのコンテナが起動していることを確認する!(docker containter ps)

「docker container ps」コマンドを使用して、Nginxのコンテナが起動していることを確認します。

$ docker container ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
ef5cbfda01d9   nginx                    "/docker-entrypoint.…"   4 minutes ago    Up 4 minutes    0.0.0.0:8080->80/tcp, :::8080->80/tcp                                                  nginx-01

Nginxのコンテナのログを確認する!(docker logs)

「docker logs」コマンドで、ログを確認することができます。

$ docker logs nginx-01
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/12/27 22:49:22 [notice] 1#1: using the "epoll" event method
2022/12/27 22:49:22 [notice] 1#1: nginx/1.23.3
2022/12/27 22:49:22 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2022/12/27 22:49:22 [notice] 1#1: OS: Linux 5.14.0-162.6.1.el9_1.0.1.x86_64
2022/12/27 22:49:22 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1073741816:1073741816
2022/12/27 22:49:22 [notice] 1#1: start worker processes
2022/12/27 22:49:22 [notice] 1#1: start worker process 29
2022/12/27 22:49:22 [notice] 1#1: start worker process 30

HTMLを表示する!

起動したホスト上で、HTMLを表示します。

http://localhost:8080

※外部のマシン上から表示する場合は、名前解決やFirewalldの通信許可の設定がされていることを確認して、アクセスします。

Nginxのコンテナを停止する!(docker container stop)

「docker container stop」コマンドを使用して、Nginxのコンテナを停止します。コンテナ自体は残ります。

$ docker container stop nginx-01
nginx-01
$ docker ps
CONTAINER ID   IMAGE                    COMMAND     CREATED          STATUS          PORTS                                                                                  NAMES
$ docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                      PORTS                                                                                  NAMES
ef5cbfda01d9   nginx                    "/docker-entrypoint.…"   8 minutes ago    Exited (0) 16 seconds ago                                                                                          nginx-01

Nginxのコンテナを削除する!(docker container rm)

「docker container rm」コマンドを使用して、Nginxのコンテナを削除します。

$ docker container rm nginx-01
nginx-01
$ docker ps -a
CONTAINER ID   IMAGE                    COMMAND     CREATED          STATUS          PORTS                                                                                  NAMES

Nginxのイメージを削除する!(docker image rm)

「docker image rm」コマンドを使用して、Nginxのイメージを削除します。

$ docker image ls
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
nginx             latest    1403e55ab369   4 days ago    142MB
$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:0047b729188a15da49380d9506d65959cce6d40291ccfb4e039f5dc7efd33286
Deleted: sha256:1403e55ab369cd1c8039c34e6b4d47ca40bbde39c371254c7cba14756f472f52
Deleted: sha256:0274f249eda4c376bde7cbe0b719ea3aef10201846d7262f37f7a0fc0b4fcf90
Deleted: sha256:e01fc49cb889c5dd6b11390e9863ba00f886315c5a403ee5955fb5c88d2aa576
Deleted: sha256:b2a367ee540c5d40c704fdece005b422f55f85a61b96a25bd99d6847669958a0
Deleted: sha256:2c1c6d39cbcc4767b0798aacc03f203951057e77c5edebca1fdfbcd4997f2919
Deleted: sha256:d260638126e1d2d3202dec36b67f124624fbcdad3afedd334e7260bf75dad8da
Deleted: sha256:8a70d251b65364698f195f5a0b424e0d67de81307b79afbe662abd797068a069
$ docker image ls
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE

おわりに

Docker Hubに登録されたNginxのイメージを利用して、Dockerの基本的な操作の流れを実施してみました。

参考情報

関連記事

関連書籍(Amazon)