mutao.net

いわゆる雑記。

Docker勉強しよう②

バインドマウント

  • nginxに静的なコンテンツをマウントする
$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

gyazo.com

  • 適当にindex.htmlを作成してデタッチモードかつ8000:80番ポートを指定してコンテナ起動
$ docker run --name test-nginx -v /path/to/docker_practice/html/:/usr/share/nginx/html:ro -d -p 8000:80 nginx
  • http://localhost:8000/ アクセスしてindex.htmlが表示されることを確認
  • コンテナ側からホストマシンのファイルにアクセスできてしまうことを意味しているので非推奨らしい

docker cp

  • ホストマシンのファイルをコンテナ内にコピーする場合
docker cp {ホストマシンのファイルパス} {コンテナ名/ID}:{コンテナ内のファイルパス}
  • コンテナ内のファイルをホストマシンにコピーする場合
docker cp {コンテナ名/ID}:{コンテナ内のファイルパス} {ホストマシンのファイルパス}
  • nginxの設定ファイルのパスを忘れたのでコンテナ内に入ってパスを確認
$ docker exec -i -t test-nginx bash
  • /etc/nginxの中にあることを確認
root@a51e969bdb54:/etc/nginx# pwd
/etc/nginx
$ docker cp test-nginx:/etc/nginx/nginx.conf /Users/user/docker_practice/
  • Dockerfileでホストマシン側のnginx.confをコンテナ側にcopyする場合はこうする
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf