Dockerことはじめ for Mac OS X

  • 12
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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