MacでDockerを使ってNginxを立ち上げてみたので覚書

MacBookProを使い始めて3ヶ月が経ちました。購入した日に、「いろんなIDEとかサーバをローカルに入れたくないから、サーバは全部Docker使って、開発は一つのエディタでやろう」と思ってDockerを入れましたが、面倒で触ることなく今日まで無視していました。ちなみに「一つのエディタで〜」はとうに挫折してEclipseVSCode入れました。

難しいと挫折しそうなのでDockerをMacにインストールする (更新:2018/5/14)の記事を参考にして進めました。

作業内容

【1】インストールしたDockerを起動する。

【2】webserverという名前のコンテナを作成してNginxを立ち上げる。 docker run -d -p 80:80 --name webserver nginx を実行。 ローカルにnginxのdocker imageがないと勝手にpullしてくれます。

$ docker run -d -p 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
802b00ed6f79: Pull complete 
5291925314b3: Pull complete 
bd9f53b2c2de: Pull complete 
Digest: sha256:9ad0746d8f2ea6df3a17ba89eca40b48c47066dfab55a75e08e2b70fc80d929e
Status: Downloaded newer image for nginx:latest
1aaf106971f8a35dc4b2ec322428a5b0fbaca166eb5a1f04ec8b807fb4f6171f

【3】Nginxが立ち上がっているか確認のため、Dockerのプロセスを確認する。docker container ls を実行。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1aaf106971f8        nginx               "nginx -g 'daemon of…"   19 minutes ago      Up 19 minutes       0.0.0.0:80->80/tcp   webserver

【4】ブラウザからNginxにアクセスして、初期画面が表示されることを確認する。 f:id:wawawa12345:20181006182214p:plain

できた!

【5】動いているNginxを止める。docker container stop webserverを実行。

$ docker container stop webserver
webserver

【6】ブラウザからNginxにアクセスして、初期画面が表示されないことを確認する。 f:id:wawawa12345:20181006182542p:plain

おっけー。

【7】止めたNginxを再起動する。docker container start webserverを実行。

$ docker container start webserver
webserver

【8】ブラウザからNginxにアクセスして、初期画面が表示されることを確認する。 f:id:wawawa12345:20181006182825p:plain

おっけー。

【9】作ったコンテナを削除する。一応コンテナを停止しておきたいのでdocker container stop webserver を実行。

$ docker container stop webserver
webserver

docker container rm webserverを実行。

$ docker container rm webserver
webserver

【10】削除したコンテナを実行しようとしてみる。docker container start webserver を実行。

$ docker container start webserver
Error response from daemon: No such container: webserver
Error: failed to start containers: webserver

そんな名前のコンテナ無いよって怒られるのでおっけー。

【11】コンテナを作成した時にローカルにpullしたNginxのimageを削除する。docker image rm nginx を実行。

$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:9ad0746d8f2ea6df3a17ba89eca40b48c47066dfab55a75e08e2b70fc80d929e
Deleted: sha256:be1f31be9a87cc4b8668e6f0fee4efd2b43e5d4f7734c75ac49432175aaa6ef9
Deleted: sha256:7609c40a03b852382a43d79231d9d4ca7661cd1ac9edcb46f78a44fff4ed59ca
Deleted: sha256:a2b6968c4326640dd5e9e22ddf6cebb61ba1a4b79a4ac8d194f93000c5a4c3e2
Deleted: sha256:8b15606a9e3e430cb7ba739fde2fbb3734a19f8a59a825ffa877f9be49059817

【12】image一覧にnginxが無いか確認する。docker image ls を実行。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

無いのでおっけー。

以上でした。立ち上げたWebサーバにデプロイするのとか難しそうだけど今度やってみます。 (作業しながら記事作成時間1hくらい)