dockerでWebアプリ構築した(1)


自分はdockerを基盤にWebアプリの開発を行っています。
その開発基盤の構築をちょろっとやったので記事に纏めました。
初歩的なものですが、自分の備忘録?的な感じとして記事を書いていきます。

Docker images nginx

まず、nginxのdocker imagesを取ってくる。

$ docker pull docker.io/nginx
Using default tag: latest
latest: Pulling from library/nginx
bf5952930446: Already exists 
cb9a6de05e5a: Pull complete 
9513ea0afb93: Pull complete 
b49ea07d2e93: Pull complete 
a5e4a503d449: Pull complete 
Digest: sha256:b0ad43f7ee5edbc0effbc14645ae7055e21bc1973aee5150745632a24a752661
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

で取得!
docker imagesで確認します。

$ docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
nginx                                  alpine              ecd67fe340f9        2 months ago        21.6MB

docker runしていくぜ!

注意: 以下の操作で一部間違ってやっているものがあります。(docker runしているコマンドにミスがあります。)
images⇨container
をしていきます。

container作成には、docker runが必須です。
では、行っていきます。

$ docker run -d -p 8000:80 --name cesium_nginx -v /マウントするフォルダ:/home ecd67fe340f9 
a115c1e7a815a4856b2b51755e217f2cc1aa856c81489d9ae3020f4fefd0883f

今回は、ポートを立てるだけでなくマウントもしていきます。
使用オプション
-p外部からアクセスされるポート番号:コンテナ側のポート番号を指定。
-dバックグラウンドで実行。
-v マウントするフォルダ:マウント先フォルダのマウントを実行。-v local:cotainer
--nameコンテナ名を決める。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
a115c1e7a815        ecd67fe340f9        "/docker-entrypoint.…"   5 seconds ago       Up 4 seconds        0.0.0.0:8000->80/tcp   cesium_nginx

localhost:8000をみにいく

http://localhost:8000/
を開くと...

こんなものが...なんだこれ...

これは、nginxが正常に動いた証!!!
つまり、成功?
かと、思ったが、、自分のマウントしたフォルダには既にhtmlファイルがあります。
だから、それが表示されないと成功ではない。

修正

何が間違っていたか...端的に言えば、マウント先が間違っている。
自分は/homeにマウントしました。
理由は、適当...どこでも良いやって思ってました。

そんなあまくなかった...

docker rm や docker stopしました。(そこらへんの処理は省きます)

$ docker run --name cesium_nginx -v /マウントするフォルダ:/usr/share/nginx/html:ro -d -p 8081:80 ecd67fe340f9 
f85c35793c4bb7368af7798db788f707bcbd4278bbcfdf87a360f727e6433c00

/usr/share/nginx/html:roこれが必要でした。

さて、これでlocalhost:8081を開きましょう!

きたーーーー

やっと目的の画面が...(この画面はCesium.jsというWebアプリケーションの画面です。ちょっとアレンジ加えていますが...)

まとめ

しっかり仕様書?やしっかり調べてからやっていこう

こっからスタートや!色々いじっていきます。楽しい楽しい開発の始まり~(見ての通り既に開発していましたが...)