色々と取り上げられることが多くなっているDockerですが、あまりWebサイト制作者側の
視点で使用されているケースを少なかったのでWebサイト制作者側の視点でどのようにして
CMSをDockerで動かすのかを記載します。
-
Dockerを動かす
-
Dockerの操作
-
Dockerfileの作り方
3-1. WordPress
3-2. Concrete5
3-3. Movable Type -
dockerhubへ登録
※本記事はMacOSX(yosemite)をベースに記載します。
1. Dockerを動かす
言わずもがなかもしれませんが、DockerはLinuxのコンテナという技術を使用して
仮想環境を構築します。なのでMac直接Dockerを起動させるという事は出来ません。
色々なやり方はありますが、ここではboot2dockerを使用してDocker環境を構築します。
環境
まずはboot2dockerを動かすための環境を準備します。
- Homebrew
- VirtualBox
HomebrewとVirtualBoxのインストール方法については割愛します。
上記環境のインストールが環境すると次はboot2dockerのインストールです。
ここではHomebrewからのインストール方法を記載します。
- 以下のコマンドを実行
$ brew install docker boot2docker
既にインストールされているかどうかは以下のコマンドを実行
※執筆時点の最新バージョン1.6.2
$ boot2docker version
Client version: v1.1.2
自分の環境が古いバージョンのままなのでこれを機に最新バージョンへアップデート
$ brew upgrade boot2docker
==> Upgrading 1 outdated package, with result:
boot2docker 1.6.2
==> Upgrading boot2docker
==> Installing boot2docker dependency: docker
==> Downloading https://homebrew.bintray.com/bottles/docker-1.6.2.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring docker-1.6.2.yosemite.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
/usr/local/Cellar/docker/1.6.2: 9 files, 7.3M
==> Installing boot2docker
==> Downloading https://homebrew.bintray.com/bottles/boot2docker-1.6.2.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring boot2docker-1.6.2.yosemite.bottle.tar.gz
==> Caveats
To have launchd start boot2docker at login:
ln -sfv /usr/local/opt/boot2docker/*.plist ~/Library/LaunchAgents
Then to load boot2docker now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.boot2docker.plist
==> Summary
/usr/local/Cellar/boot2docker/1.6.2: 3 files, 7.3M
これで最新バージョンになりました。
試しにdockerを起動させてみます。
初回時はboot2docker initで仮想マシンイメージをダウンロードしさせます。
$ boot2docker init
次に仮想マシンを実行します。
$ boot2docker up
Waiting for VM and Docker daemon to start...
.........................o
Started.
To connect the Docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://localhost:2375
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY
$ docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2
OS/Arch (client): darwin/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64
上記コマンドでDockerがバージョンを確認
私の環境ではエラーが発生
$ docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2
OS/Arch (client): darwin/amd64
FATA[0000] Error response from daemon: client and server don't have same version (client : 1.18, server: 1.13)
これはClientのバージョンをbrewコマンドでアップしたがサーバ側(VMイメージ)が古かったため発生
以下のコマンドでVMをアップグレード
$ boot2docker upgrade
再度改めてdockerを試します。
$docker run -d -P --name web nginx
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cae57db9363e nginx:latest "nginx -g 'daemon of 6 minutes ago Up 5 minutes 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp web
ブラウザからポート32769にアクセスするとnginxの画面が表示されればオッケー
2. Dockerの操作
停止:
$ docker stop web
リストの一覧
$ docker images
コンテナ一覧
$ docker ps -a
コンテナを削除しないとimageの削除ができない
3. Dockerfileの作り方
既にgithubに公開されているリポジトリを元に起動方法とそこに記載されている
Dockerfileの解説を行います。
3-1. concrete5のインストールを行う
以下のgithubのリポジトリをclone
https://github.com/kurishimak/docker-concrete57
どうやらdocker-composeのインストールが必要とのこと
以下にdocker-composeのインストールについて記載
pythonからインストール
$ sudo brew install python
docker-composeのインストール
$ sudo pip install -U docker-compose
上記docker-composeを使用する準備が整いいざ、実行してみるとエラーに。。。
$ docker-compose up
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
以下のページを参考に対応してみましたがうまくいかず、どうやら私のPCのPython環境が微妙なようです。。。
https://github.com/docker/compose/issues/890
なので公式サイトに記載されている以下の方法でインストールしました
$ curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
さて、仕切り直しで再度、docker-composeコマンドを使用してコンテナの起動を実行してみます。
$ docker-compose up
ここに表示されているDB_HOSTはconcrete5のインストールで使用します
インストール出来ました!!
続きはまた今度で