Dockerの概念や仕組みをググってなんとなく把握した後で、
実際触ってみました。
この方の記事をまとめた感じです。
ほとんど、ターミナルでのコマンド作業です。
セットアップ
Macでは、boot2dockerという仮想マシン上の
Dockerサーバーを操作してDockerコンテナを実行する形です。
必要な環境
・OS X (私はYosemiteです、DockerはSnowLeopard以降サポート)
・VirtualBox (本家サイトからパッケージをインストール)
・Homebrew (こちらの手順でインストールしました)
インストール
boot2dockerだけでdockerも含まれるっぽい。
$ brew tap home-brew/binary
$ brew install docker boot2docker
バージョン確認して正常にインストールされたことを確認
$ docker version
$ boot2docker version
初期化と起動
VirtualBoxがインストールされていないと、エラーがでて先に進めません。
初期化のinitは1度だけ実行するだけ。
$ boot2docker init
$ boot2docker up
環境変数の設定
起動した時に表示される仮想環境への以下の設定値を、
.bash_profileなどに設定して読み込みます。
クライアントが仮想マシンに向いて連携するためですね。
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/tetsuya_harada/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
コンテナの操作
CentOS6で試していく。
参考までに、オフィシャルのイメージ一覧。
イメージの取得
pullしてローカルに保存。
$ docker pull centos:centos6
ローカルのイメージ確認。
$ docker images
コンテナの各種コマンド
コンテナをcentos6-upという名前で起動、該当OSのbashも。
-p 80:80
はホストOSとDockerコンテナーのポートマッピング。
$ docker run -t -i -p 80:80 --name centos6-up tetsuyanh/centos6-up /bin/bash
exitで、コンテナを停止。
# exit
前回作業した環境をそのまま再開できます。
アパッチとかのプロセスは再起動する必要あります。
$ bash
bash-3.2$ docker start -i centos6-up
コンテナの削除
$ docker rm centos6-up
イメージの作成
LAMP環境を加えたカスタマイズをイメージにする。
コンテナ上で、yumでLAMPをインストール。
# yum update
# yum install httpd
# yum install php php-gd php-mysql php-intl php-xml php-xmlrpc php-soap php-pecl-apc php-odbc php-mbstring
# yum install mysql mysql-server
timezoneを日本にしておく(date.timezone = Asia/Tokyo)
# vi /etc/php.ini
# chkconfig httpd on
この環境をイメージとして保存
$ docker commit centos6-up myimage/centos6-lamp
docker images
で、今作成したイメージを確認できる。
検証
コンテナーを起動して、アパッチ(HTTPD)を起動する。
$ bash
$ docker start -i centos6-up
# /etc/init.d/httpd start
簡単なPHPページを用意する。
# vi /var/www/html/info.php
<?php
phpinfo();
?>
DOCKER_HOSTに指定した仮想サーバーでPHPページが見れることを確認。
http://192.168.59.103/info.php