🐳

Docker を Compose しないで、ローカル環境を構築する。

2 min read

① Docker ネットワークを新規作成する。

$ docker network ls コマンドを実行することで、Docker ネットワークの一覧を確認することができます。
デフォルトで bridge という名前のネットワークが生成されていますが、このネットワークではコンテナ名を使用したコンテナ間通信をおこなうことができないため、新規にネットワークを生成します。

  1. $ docker network create 'ネットワーク名' を実行して、開発環境用の Docker ネットワークを新規作成する。
Zsh
$ docker network ls

NETWORK ID     NAME             DRIVER   SCOPE
'NETWORK ID'   bridge           bridge   local
  # デフォルトで生成されているネットワークは使用しない。
'NETWORK ID'   'ネットワーク名'   bridge   local
  # 新規作成したネットワーク名が生成されていたら OK です。
● 参考資料

② データベースサーバー(MySQL)のコンテナを起動する。

Zsh
$ docker run
  --network 'ネットワーク名'
  -p 3306:3306
  --name 'コンテナ名'
    # 指定しない場合は、Docker が適当に名付けます。
  --hostname 'MySQL のホスト名'
    # 指定しない場合は、Docker が適当に名付けます。
  -v 'ローカル環境にデータを同期しておくディレクトリパス':/var/lib/mysql
    # 指定しない場合は、コンテナを削除するとデータが消えます。
  -e BIND-ADDRESS=0.0.0.0
    # ローカル環境から MySQL に接続できるようにする。
  -e MYSQL_ROOT_PASSWORD='MySQL のパスワード'
  -it --rm 'イメージ名'

● 主要な Docker イメージ

● MySQL に接続する際のコマンド

Zsh
$ mysql -h 0.0.0.0 -u root -p
  # ローカル環境から MySQL に接続する。

$ docker exec -it 'コンテナ名' mysql -u root -p
  # Docker コンテナから MySQL に接続する。

③ アプリケーションサーバー(Ruby on Rails)のコンテナを起動する。

Zsh
$ docker run
  --network 'ネットワーク名'
  -p 3000:3000
  --name 'コンテナ名'
    # 指定しない場合は、Docker が適当に名付けます。
  -v 'ローカル環境にデータを同期しておくディレクトリパス':/var/www/'アプリケーションディレクトリ'
    # 指定しない場合は、コンテナを削除するとデータが消えます。
  --link 'MySQL のコンテナ名':'MySQL のホスト名'
  -it --rm 'イメージ名'

● アプリケーションサーバーを起動するためのコマンド

Zsh
$ docker exec -it 'コンテナ名' rails s
    -p 'ポート番号'
    -b '0.0.0.0'
      # ローカル環境から接続できるようにする。

Discussion

ログインするとコメントできます