自分は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アプリケーションの画面です。ちょっとアレンジ加えていますが...)
#まとめ
###しっかり仕様書?やしっかり調べてからやっていこう
こっからスタートや!色々いじっていきます。楽しい楽しい開発の始まり~(見ての通り既に開発していましたが...)