【Docker】nginxイメージでウェブサーバー構築【入門】
nginxイメージでウェブサーバー構築
https://hub.docker.com/_/nginx/
nginxのコンテナを立ち上げるコマンドは以下
docker run --name <コンテナ名> -d \
-p <ホスト側のポート番号>:<コンテナ側のポート番号> \
<イメージ名>
コマンドの末尾の\は複数業に続くコマンドを指定する場合に使う
- d detachモード(バックグラウンんどで動作。常駐型のものは-dを指定しましょう)
実際にnginxコンテナを起動していきます。
$ docker run --name test-nginx -d -p 8080:80 nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx f17d81b4b692: Pull complete d5c237920c39: Pull complete a381f92f36de: Pull complete Digest: sha256:b73f527d86e3461fd652f62cf47e7b375196063bbbd503e853af5be16597cb2e Status: Downloaded newer image for nginx:latest 5b2ea9c3c6deda192a973468c5d3619c2e0a57582c42a11165542a2da0c960ae
localhostの8080にアクセルして確認します。
すると以下のデフォルトの画面が出ると成功です!
dockerコンテナが動作していますね。
nginxの80番ポートをコンテナを実行している仮想マシンの8080ポートにマッピング。
仮想マシンの8080にアクセスされるとnginxのネットワークポート80番ポートに繋がる
nginxがコンテンツを返しデフォルトページが表示される。
host上のhtmlファイルをnginxで公開
host上のディレクトリをコンテナにマウントしていきます。
nginxのhubのページをみにいきます。
以下に記載があります。
- vオプションがついていますね。
-v <host側のディレクトリ>:<コンテナ側のマウントポイント>:<オプション> //例 $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
/usr/share/nginx/htmlはnginxのドキュメントルートディレクトリです。roオプションはリードオンリーの略。
今回は以下のようなディレクトリ構成で -vを指定して実行してみます。
-v USER/<ユーザー名>/docer-tutorial/html:/usr/share/nginx/html:ro
マウントを利用することでイメージにはソースコードは含めずに
gitでソースは管理して、マウントして修正内容などをすぐに確認できます。
超便利ですね!
マウントするように簡単なhtmlファイルを以下のディレクトリないに作成します。
/Users/hodzumitakanori/docker-tutorial/html $ cat index.html <!DOCTYPE html> <html> <body> <h1>Hello takanori5!<h1> </body> </html>
コマンドを実行!
$ docker run --name nginx -v /Users/hodzumitakanori/docker-tutorial/html:/usr/share/nginx/html:ro -d -p 8080:80 nginx c401ad4ccdc84fdaed5ce047a684ceb2a831eec85e803f1e93fe3c4ae5cb0eec