MacOSX Web開発環境

MacでDocker〜boot2docker

投稿日:2014年12月13日 更新日:

情報源

Dockerは、コンテナ型の仮想化を実現するためのソフトウェア
boot2dockerはDockerをインストールしたVirtualBoxの仮想マシンを操作することができて、Macで簡単にDockerを使う環境を整えてくれる.
公式のMacへのインストール解説(動画付き)
docs.docker.com/installation/mac/

Dockerとは何か?どこで使うべきか?

おおいに参考にしたページ
boot2docker使用メモ

ドットインストール Docker入門

boot2dockerのインストール

pkgファイルをダウンロード

github.com/boot2docker/osx-installer/releases/tag/v1.3.2
最新のv1.3.2をダウンロード

インストール

screenshot

boot2dockerの初期起動

アプリケーションからboot2dockerを起動すると、ターミナルが立ち上がって初期設定をしてくれる

手動での追加の初期設定

シェル(iterm2)で、 docker imagesなどとすると、 2014/12/13 13:13:58 Get http:///var/run/docker.sock/v1.15/images/json: dial unix /var/run/docker.sock: no such file or directory のようなエラーになるため、次のコマンドを実行する

環境変数の問題ということなので、.zshrcに次の通り追加した

環境変数の調べ方は、上の$(boot2docker shellinit)を実行後に、envでわかる

boot2dockerの操作

VirtualBoxを立ち上げると、boot2docker-vmという仮想マシンがあるのがわかる

boot2dockerはこの仮想マシンを操作してくれる

起動

終了

ipアドレスの確認

Dockerの操作

イメージの検索

イメージのダウンロード

イメージの一覧

イメージの詳細

イメージの削除

コンテナの実行

コンテナの一覧

過去の一覧は、

NginXの起動

Dockerfileの作成

まず、単に、apt-get install nginxでは、パッケージがないと怒られるので、apt-get updateが必要.
次に、ローカルにindex.htmlを用意しておく.
そして、CMD[“service”, “nginx”, “start”]にしても、dockerがすぐ終了してしまう.
FOREGROUNDで起動させるか、いろいろ工夫するかが必要

参考
Dockerコンテナ起動時にserviceを実行する
Dockerコンテナー内のbashからアプリケーション停止処理を実施するTIPS
nginxをdockerで動かす時のTips 3選

Dockerfile内での命令については
Dockerってなんじゃ?(Dockerfileでビルド)

build

適当に名前をつけてイメージをビルド

run

つくったイメージをバックグラウンドで、port80を8080にして、起動

できた

boot2docker ipのアドレスで、ポート8080にアクセスすると、index.htmlが表示される.
screenshot

dockerのターミナルにログイン

デバッグするのにインタラクティブモードでコンテナに接続できる

コンテナの一括削除

イメージを削除する際に、コンテナがあると削除できない.

参考
Dockerで不要になったコンテナやイメージを削除する

ボリュームを使う

このままでは、データがとても扱いにくい.
Dockerでは、ホストのディレクトリをコンテナのディレクトリにマウントできる.

ホストの現ディレクトリ以下をコンテナのnginxのルートディレクトリとログディレクトリにマウントしてみた.
インタラクティブモードの場合

バックグラウンドで動かす場合

これで、ホストのファイルを書き換えれば、すぐに、コンテナのファイルが書き換えられる.
screenshot

screenshot

参考
Managing Data in Containers
docker のボリュームオプションを使った(Amazon Linux で docker 使えた!)
Creating and mounting a Data Volume Container
DockerのVOLUMEを調べてみた。
Dockerでffmpegもimagemagickも怖くないという話

-MacOSX, Web開発環境
-,

執筆者:

関連記事

MacでQuake風ターミナルを使おう〜TotalTerminal

totalterminal.binaryage.com/ 普段は別のターミナルを使っているけど、ちょっとコマンド打ちたいってときにショートカットキーだけで呼び出せるから便利 ショートカットで上から小さ …

Macでデスクトップをgifで録画〜LICEcap

By: Ryosuke Sekido – CC BY 2.0 目次1 licecap2 インストール3 起動4 録画5 できた6 キー操作表示〜KeyCastr licecap www.c …

PythonやRなどのインタラクティブ実行環境Jupyter Notebookをインストールする

By: tonynetone – CC BY 2.0 目次1 Jupyter Notebook2 環境3 インストール4 実行5 Python実験環境6 R環境のインストール7 Ruby環 …

zshの機能と設定まとめ

By: Marsha Wheatley – CC BY 2.0 目次1 zsh機能の紹介 ニコニコ動画2 環境3 colors 色の設定4 Completion 補完機能5 Correct …

Pythonでワンライン開発用Webサーバ〜SimpleHTTPServer

By: ThoseGuys119 – CC BY 2.0 目次1 Pythonでの開発用サーバー2 phpでの開発用サーバー3 Rubyでの開発用サーバー Pythonでの開発用サーバー …