###### tags: `インフラ` [TOC] # Docker でNginx を起動して Web ページを表示する ## Nginx のイメージをダウンロード pull コマンドを使用して Nginx のイメージをダウンロード。 ```== docker pull nginx ``` ## Nginx を起動して接続 enginx の起動は以下のコマンド ```== docker run --name [コンテナ名] -d -p [ホスト側のポート番号]:[コンテナ側のポート番号] [イメージ名] ``` - –name : 任意のコンテナ名を指定 - -d : コンテナをバックグラウンドで実行 - -p : ポート転送を設定 その後``docker ps``で起動してるか確認。 例) ```== docker run --name nginx -d -p 8080:80 nginx:latest ``` ## ブラウザにアクセス 起動ができたのでブラウザに「http://localhost:8080」にアクセスしてみる ![](https://i.imgur.com/pQQgAPT.png) 上の写真のように表示されたら成功 ## Nginxのコンテナを停止する ```== docker ps # 停止させたいコンテナの ID (CONTAINER ID)を調べる docker stop [CONTAINER ID] # 調べた CONTAINER ID を調べてコンテナを停止する ``` ## Docker 上の Nginx に HTML を置いて表示 最初に以下のファイルを用意する。 私の場合、 /Users/[ユーザー]/sysken/nginx/html というディレクトリに hello.html を配置した ```== html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Hello</title> </head> <body> <h1>Hello, World!!</h1> </body> </html> ``` 次に、 Mac の /users/[ユーザー]/web/hello.html をコンテナ側のディレクトリにマウントして Enginx を起動する ```== docker run --name hello-nginx -v /Users/k18076kk/sysken/nginx/html:/usr/share/nginx/html:ro -d -p 8080:80 nginx ``` 「http://localhost:8080/hello.html」 にアクセスすると ![](https://i.imgur.com/xjX3HRm.png) と、表示される。 -- -- コマンドの補足 - -v **:** コンテナにボリュームを割り当てるためのオプション - --name hello-nginx **:** hello-nginx という名前でコンテナを起動するという意味 - Users/k18076kk/sysken/nginx/html **:** ホスト側のパス - /usr/share/nginx/html **:** Dcoker の Nginx 側のパス - ro **:** 読み取り専用(リードオンリー)であることを示す - -d **:** コンテナをバックグラウンドで実行 - -p **:** ポート転送を設定 -- -- ## nginxのディレクトリ構造 | ディレクトリ/ファイル名  | 内容 | | -------- | -------- | | /etc/logrotate.d/nginx | ログのローテーションの設定ファイル | | /etc/nginx | nginxの設定ファイルが置かれるディレクトリ | | /etc/sysconfig/nginx | nginxの起動オプションを記述する設定ファイル。現在は使われていない | | /usr/lib/systemd/system/nginx.service | systemdの設定ファイルで、起動スクリプトに相当する。 | | /usr/lib64/nginx/modules | 追加モジュールを配置するディレクトリ | | /usr/libexec/initscripts/legacy-actions/nginx | systemdで対応できないコマンドを置くディレクトリ。アップグレード時に実行されるコマンドが配置される | | /usr/share/doc/nginx-(バージョン) | nginxのドキュメントが置かれるディレクトリ。Copyrighy表示のみが置かれている。 | | /usr/share/nginx/html | デフォルトのドキュメントルートとなるディレクトリ。エラードキュメントのなどもここに配置される | | /var/cache/nginx | キャッシュファイルが置かれるディレクトリ | | /var/log/nginx | ログファイルが書き出されるディレクトリ |