1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker:nginxのコンテナで静的なHTMLを表示させる(バインドマウント)

Last updated at Posted at 2023-02-19

Dockerデスクトップが起動しているかを確認

起動忘れをはじめ、Macをスリープから復帰した時など、Dockerが意図せず終了している時がある。

ローカル(コンテナ)側のHTMLファイルの領域(設置場所)を用意する

この例では、 /Users/myusername/Documents/ に学習用のディレクトリ「testdocker」を作成し、その下に「html」というディレクトリを作成、この中にindex.htmlを設置して、ホスト側からここのパスをバインドマウント(紐付け)する。

ローカル(コンテナ)側の方でバイドマウントさせたいディレクトリやindex.htmlを作成

バインドマウントさせて表示させたいhtmlファイルを準備させておく。
vimまたはプログラミング用エディタでindex.htmlを作成しておく。

nginxのコンテナを立ち上げる(バインドマウントを使用する場合)

nginxのリポジトリの説明には以下のコマンドが紹介あり

$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

「/some/content」: ホスト側のディレクトリ。
「/usr/share/nginx/html」: コンテナ側のマウントポイント。上のホスト側のディレクトリを「バインドマウント」する。
「:ro」: オプション。read only。マウント先のコンテナに読み取り専用でマウントする指示

-v の書き方

絶対パスであることに注意。相対パスと間違いやすいらしい。

Mac

-v /Users/<ユーザー名>testdocker/html:usr/share/nginx/html:ro

Windows

-v /c/Users/<ユーザー名>testdocker/html:usr/share/nginx/html:ro

上記を日本語を交えて表現すると以下

docker run --name <コンテナ名> -d \
 -v<ホスト側のディレクトリ>:<コンテナ側のマウントポイント>:<オプション> \
 -p<ホスト側のポート番号>:<コンテナ側のポート番号> \
<イメージ名>

バインドマウント(紐付け)する

先に作成したHTMLファイルの置き場所のパスをpwdコマンドで取得

もちろん、欲しいパスがどこかわからないのだから、まずは欲しいパスのディレクトリまでcdで移動してからpwdコマンドを打つ。

pwd

これで絶対パスが返ってくるのでコピーしておく。
※マウントさせたいHTMLファイルはすでに冒頭で作成済み。

コピーした絶対パスを使い、今回の場合に合わせた具体的なコマンドを打つ

docker run --name first-nginx \
 -v /Users/myusername/Documents/testdocker/html:/usr/share/nginx/html:ro \
 -d -p 8080:80 nginx

※バックスラッシュはWarp(ターミナル)上で改行になる。

無事にバインドマウントできたかをブラウジングして確認

http://localhost:8080/
へアクセスして作成したHTMLが表示されるかを確認。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?