LoginSignup
11
11

More than 5 years have passed since last update.

Dockerことはじめ for Mac OS X

Posted at

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

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