LoginSignup
20
20

More than 5 years have passed since last update.

開発用PC と dockerコンテナ との距離がグッと近づく 2つの架け橋

Posted at

この投稿は、wordpress のプラグイン開発環境を docker 上に構築することを題材として、boot2docker および docker のネットワークや共有ディスクの理解を深めることを目的としています。

boot2docker 上で docker コンテナを稼働させるときに、開発用PC から docker コンテナまでの間に距離を感じている方は、この 2つの架け橋 によって、グッと距離が近くに感じられるようになるハズです。

なお、docker や boot2docker のインストール方法などについては記載しておりません。

開発用PC と dockerコンテナ の距離感

やりたいことはシンプルなのですが、開発用PC と dockerコンテナ の間に仮想化が2階層はいってくると、とたんに距離を感じてしまいます。

サーバー構成と要件

  • wordpress が動作する Webサーバー 1台
  • wordpress のデータを保持する DBサーバー 1台
  • 上記の Webサーバー と DBサーバー を連携させます。
  • 開発用PC から wordpress のサイトにブラウザでアクセスできること。
  • 開発用PC から wordpress のプラグイン関連ファイルの読み書きできること。

やりたいことのイメージ.png

やりたいことは、とてもシンプルです!
ところが、いざ docker で環境を構築しようとすると…。

構築する環境

  • Webサーバー と DBサーバー は、dockerコンテナ として構築します。
  • 開発用PC は Linux ではないため、boot2docker を使用します。

仮想化による距離感.png

こうなると、開発用PC から dockerコンテナ まで、少し距離を感じてきませんか?

  • 開発用PC のブラウザから、どうやって dockerコンテナ内の wordpress にアクセスしようか…。
  • 開発用PC から、どうやって docker コンテナ内の plugins フォルダを読み書きしようか…。

さあ、橋を架けましょう

次のたった2行の docker コマンドだけで、環境構築が完了してしまいます。

boot2docker$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
boot2docker$ docker run --name some-wordpress --link some-mysql:mysql -d -p 80:80 -v /c/Users/someone/plugins:/var/www/html/wp-content/plugins wordpress

いったい、何が起きているのでしょうか?
docker コマンド内のオプション指定が、どこのリンクに影響しているのかを確認してみてください。

架け橋のイメージ.png

さらに距離を近づけてくれているのが、boot2docker の Host only interface自動マウントされる共有フォルダ です。(特に何も設定することなく、有効になっているハズです)

  • Host only interface のおかげで、ポートフォワードの設定をすることなく、dockerコンテナが公開しているポートへ 開発用PC から接続できます。
  • 自動マウントされる共有フォルダのおかげで、コンテナ内 と 開発用PC の両方から同一フォルダを参照できるようになります。(開発用PC の C:\Users\ が、boot2docker の LinuxVM 上の /c/Users/ に自動マウントされています)

実際にアクセスするには

wordpress のサイトにブラウザからアクセスするには

開発用PC 上で、boot2docker.exe コマンドを使って、Host only interface の IPアドレス を調べてください。

PC> boot2docker.exe ip
The VM's Host only interface IP address is: 192.168.xxx.xxx

ブラウザから http://192.168.xxx.xxx/ にアクセスすれば、dockerコンテナ上の wordpress サイトを参照できます。

wordpress の plugin フォルダを読み書きするには

開発用PC の C:\Users\someone\plugins を読み書きすれば、docker コンテナ内の plugins フォルダの内容も変更されます。

まとめ

Linux ではない 開発用PC で docker を使用する場合に感じられる距離感を、2つの架け橋(ネットワークの架け橋フォルダ共有の架け橋)を使うことで、グッと近づけることができたと思います。設定自体も dockerコマンド 2行だけ なので、気楽に試すことができます。いろいろ応用してみてください。

20
20
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
20
20