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が表示されるかを確認。