Dockerで nginxを走らせる

今朝 Dockerで高速な Web Serverである nginxを走らせてみました

$ docker run -p 8080:80 nginx

これで別に terminal windowを開いて

$ docker ps

としたところ、

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
117c3fc5c632        nginx               "nginx -g 'daemon of…"   51 seconds ago      Up 51 seconds       0.0.0.0:8080->80/tcp   epic_nobel

と既に nginxが走っていることを確認しました

そこで、Macから browserを立ち上げ http://localhost:8080/ とアクセスしてみたところ、

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

このように、Welcome addressが出ました やったね

ちなみに今度はchrome, safari, firefoxの全てで作動しました

Dockerの何回目かの勉強

これまで何回も Docker習得に挑み、挫折してきました 挫折すると暫く、そうですね数ヶ月間 Dockerのことは忘れ、またブーメランのように戻ってくるのです さあ今度はどうでしょうか また挫折するのかな?

そもそも Dockerとは Container-baseの仮想コンピューターシステムです 何と言えばいいか、例えば自分の MacBook Proの上に、たとえば Linux serverを何個も同時に動かしたりできるのです これは現代コンピューターサイエンスのもっとも進んだ利用なのだと思います

何れにしても目標としては、自分の MacBook Proの上に、Linux Web + PHP + MySQL (つまりいわゆる LAMP: L = Linux, A = Apache Web Server, M = MySql database server, P = PHP or Python programming language)を構築し、それを使用して Web program開発をすることなのです 現在はこの目的のために MAMPを利用しているのです

実はアメリカから帰国する前に「やったあ できた」と思ったのですが、その後検討すると Chromeでしか作動しない、FireFoxや Safariでは動作しない、http://localhost:8080/ではアクセスできない などの問題点があり、これではプログラム開発できません

それでゼロ点に回帰してやり直すことにしました 本日はこんなこと学びました

MacBook Proの bash terminal上で

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

と入力し、Enterを押す そうすると

linuxkit-025000000001:~#

という待受になりこの時点で Linuxが Dockerコンテナの中で作動しだすが、ここで exitと入力すると あれあれ不思議 bash terminal上にこの Docker container上で動作する Linuxが遊び心でこんな素敵な画面を出力するのです

Welcome to LinuxKit

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""___/ ===
          {                       /  ===-
           ______ O           __/
                          __/
              ___________/

linuxkit-025000000001 login: root (automatic login)

Welcome to LinuxKit!

NOTE: This system is namespaced.
The namespace you are currently in may not be the root.
login[483]: root login on 'ttyS0'
linuxkit-025000000001:~#

このままだと終了しないので、Ctrl-a kと入力することにより、Macbook Proの terminal bashに復帰します

こんなことですが、Dockerの始めの一歩でした 是非とも皆様方試みて下さい

ちなみにこのクジラの絵ですが、Dockerの trade markですクジラが貨物船のようにコンテナを積み込んでいる模式絵なのです 面白いですね

わーあいっ

今現在 Washington DCのラウンジで成田行き飛行機の出発を待っています その間に進歩して Chromeブラウザにこのようなものを出すことに成功しました

これは Docker containerで立ち上げた LAMP serverです

素晴らしいですね これは index.htmlに html文書を作成し、http://sample.localhost:8080/index.html にアクセスしたものです やったね やったね こうなるともう MAMPは不要となるのかな

本当のやったあ

この前の投稿ではタイトルが「やったあ」となっていますが、そのタイトルは実はこの投稿に対するものなのです

それと言うのも、このアメリカでの時差ボケの最中に解決したこと一つ それは Dockerで LAMPサーバーを Macbook Proの中に立ち上げることに成功したのです

といっても結構スキルの必要な作業であり、それを探すというのも一つの才能なのです 僕はサーチして このページに行き着きました いやいやありがたいことです

ただ、その記載の中に一箇所誤りがあり、そもそも良く理解していないので、何が誤りか検出するのに20分ぐらいを費やしました それは

./db/Dockerfile

DBサーバの設定ファイルです。
DockerHubにあるmysql:5.6を使用しています。

FROM mysql:5.6
MAINTAINER docker-db

COPY ./my.cnf /etc/mysql/my.cnf ※1

ここに一箇所誤りがあるのです それは簡単な話ですが、※1を削除せねばならない、ということです

それに気づいて修正したところ、見事に

docker-server$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
dockerserver_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
dockerserver_web_1 docker-php-entrypoint apac ... Up 0.0.0.0:8080->80/tcp

というふうに mysqldとphpが立ち上がりました 感謝感謝です