プログラミングと旅と映画の日々

食品の営業からSEに転職した文系エンジニアです。 プログラミングと趣味の株に関してブログを書いていこうと思います。

【Docker】nginxイメージでウェブサーバー構築【入門】

nginxイメージでウェブサーバー構築

f:id:takanori5:20181028132956p:plain
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コンテナが動作していますね。
f:id:takanori5:20181102150020p:plain

nginxの80番ポートをコンテナを実行している仮想マシンの8080ポートにマッピング
仮想マシンの8080にアクセスされるとnginxのネットワークポート80番ポートに繋がる
nginxがコンテンツを返しデフォルトページが表示される。

f:id:takanori5:20181102150341p:plain

host上のhtmlファイルをnginxで公開

host上のディレクトリをコンテナにマウントしていきます。
nginxのhubのページをみにいきます。
以下に記載があります。
f:id:takanori5:20181102153550p:plain

  • 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

f:id:takanori5:20181102155441p:plain