はじめに
今回は、「Docker Hub」に公開されている公式イメージ「httpd」を利用して、Webサーバーの起動、コンテナ操作のコマンドを実行してみます。
※こちらのWindows版ページを参考にmacで同様な操作を実施してみます。
①Docker Hubからイメージを取得する
「docker search」コマンドを使用して「Docker Hub」から「httpd」イメージを検索します。
docker search httpd
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
httpd The Apache HTTP Server Project 3306 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 36
centos/httpd 33 [OK]
arm32v7/httpd The Apache HTTP Server Project 9
arm64v8/httpd The Apache HTTP Server Project 6
・
・
「docker pull」コマンドでイメージをダウンロードします(最新版を取得)
docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
6ec7b7d162b2: Pull complete
17e233bac21e: Pull complete
130aad5bf43a: Pull complete
81d0a34533d4: Pull complete
da240d12a8a4: Pull complete
Digest: sha256:a3a2886ec250194804974932eaf4a4ba2b77c4e7d551ddb63b01068bf70f4120
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
「docker images」コマンドで保有しているイメージのリストを確認します。
docker pull httpd
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest dd85cdbb9987 3 weeks ago 138MB
nginx latest daee903b4e43 6 weeks ago 133MB
docker/getting-started latest 67a3629d4d71 2 months ago 27.2MB
「docker run」コマンドでコンテナイメージを起動します。
docker run -d -p 8080:80 httpd
6a9d5dccda61b7e0a386f61564449a02d54d7b16acb55915239bc6ca34e4b8e6
ブラウザから「http://localhost:8080」へアクセスします。「It Works!」画面が表示されます。
「docker ps」コマンドで、実行中コンテナの状態を確認します。httpdコンテナが起動しています。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a9d5dccda61 httpd "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp relaxed_mclean
「docker stop」コマンドでコンテナIDを指定し、コンテナを停止します。
docker stop 6a9d5dccda61
6a9d5dccda61
再度ブラウザから「http://localhost:8080」へアクセスするとページが表示されません。
「docker ps」コマンドで今度は「-a」オプションを指定、停止中のコンテナも含め全て表示します。httpdのコンテナのSTATUSが「Exited」となっています。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a9d5dccda61 httpd "httpd-foreground" 2 minutes ago Exited (0) 19 seconds ago relaxed_mclean
b8c4fd931f03 docker/getting-started "/docker-entrypoint.…" 6 weeks ago Created tender_moser
cf6a49c593f6 nginx "/docker-entrypoint.…" 6 weeks ago Exited (255) 6 weeks ago 0.0.0.0:80->80/tcp webserver
同じコンテナを再開する場合は、「docker start」コマンドでコンテナIDを指定します。
docker start 6a9d5dccda61
6a9d5dccda61
動作中のコンテナを強制終了したい場合は、「docker kill」コマンドを実行します。
docker kill 6a9d5dccda61
6a9d5dccda61
停止中のコンテナを削除する場合は、「docker rm」コマンドを実行します。
docker rm 6a9d5dccda61
6a9d5dccda61
「docker ps」コマンドでhttpdコンテナが削除されていることを確認します。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b8c4fd931f03 docker/getting-started "/docker-entrypoint.…" 6 weeks ago Created tender_moser
cf6a49c593f6 nginx "/docker-entrypoint.…" 6 weeks ago Exited (255) 6 weeks ago 0.0.0.0:80->80/tcp webserver
再度「docker run」コマンドでhttpdコンテナを起動した場合は、別のプロセスとして新たなコンテナIDが割り当てられます。「07c72459b7b9」が割り当てられました。
docker run -d -p 8080:80 httpd
07c72459b7b98924fc73ee19788411df6f08577269c5b8e383697b8ca5d64972
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07c72459b7b9 httpd "httpd-foreground" 13 seconds ago Up 12 seconds 0.0.0.0:8080->80/tcp nice_franklin
今回は「Docker Hub」からイメージを取得し、Webサーバーの起動、コンテナを操作するところまで実施しました。実施してみましたが・・・。Windowsの操作とほぼ同じでした。
今回の内容についてはWindowsで実施されたことがある方は、スムーズに進むと思います。
Mac版Dockerの利用についてまた次回お楽しみに!
株式会社 パブリックリレーションズ 〒064-0807 北海道札幌市中央区南7条西1丁目13番地 弘安ビル5階 011-520-1800 011-520-1802