🗂
Dockerを使って開発するときに必須な設定3つ
対象読者
- Docker初心者
- Dockerをつかってアプリケーションの構築を行おうとしている人
事前準備
- Windowsの場合、Dockerの利用環境としてwslをインストールする
- WSL を使用して Windows に Linux をインストールする方法
- 下記のコマンドを実行
wsl --install
Dockerを使って開発するときに必須な設定
- ネットワーク
- マウント
- ホットリロード
1. ネットワーク
ホスト環境での動作確認や、アプリケーション同士の接続に必須の設定。
ホストとコンテナのポートをマッピングする
アプリケーションをホスト環境から動作確認する際に必要。
docker run の場合
コマンド プロンプト
- p <ホストのポート>:<コンテナのポート>
docker-compose の場合
docker-compose.yml
ports:
- <ホストのポート>:<コンテナのポート>
ホストからコンテナのlocalhostへアクセス可能にする
サーバーサイドのアプリケーションをホスト環境から動作確認する際に必要。
受けるアドレスを0.0.0.0に変更する。
docker run の場合
コマンド プロンプト
-o 0.0.0.0
docker-compose の場合
docker-compose.yml
command: <実行したいコマンド> -o 0.0.0.0
Dockerのネットワークを設定する
クライアントサイドからサーバーサイドに接続したり、サーバーサイドのアプリケーションからDBに接続したりとアプリケーション同士の接続に必要な設定。
docker run の場合
- Dockerのネットワークを作成する
コマンド プロンプト
docker network create my-net
- 各コンテナがネットワークに所属するように設定する
コマンド プロンプト
--net my-net
docker-compose の場合
docker-composeの場合は自動でネットワークの設定がされるため設定不要。
各コンテナから接続のためにホスト名を指定する際は、サービス名を指定する。
2. マウント
ホストで編集しているファイルをコンテナ内にも渡せる。
ホストで編集できると好きなエディタを使えるため楽。
docker run の場合
コマンド プロンプト
-v <ホストのパス>:<コンテナのパス>
ホストのパスには $PWD/~~~ とすると現在のフォルダー以下から書けるので楽
docker-compose の場合
docker-compose.yml
volumes:
- <ホストのパス>:<コンテナのパス>
ホストのパスには ./ とするとdocker-compose.ymlが存在するフォルダー以下から書けるので楽。
3. ホットリロード
フレームワークごとに設定を調べて実行する。
Sinatraの場合
- 公式のイメージからコンテナを作成する
- rbファイルの記述
xxx.rb
require 'sinatra/reloader'
補足
ログ確認方法
エラーが存在した場合にログ確認して解消する。
コマンド プロンプト
docker logs <コンテナ名 or ID>
オプション
-f:出力されているログを順次確認できる
コマンド プロンプト
docker logs <コンテナ名 or ID> -f
Discussion