13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerでCMSを動かす

Last updated at Posted at 2015-06-14

色々と取り上げられることが多くなっているDockerですが、あまりWebサイト制作者側の
視点で使用されているケースを少なかったのでWebサイト制作者側の視点でどのようにして
CMSをDockerで動かすのかを記載します。

  1. Dockerを動かす

  2. Dockerの操作

  3. Dockerfileの作り方
    3-1. WordPress
    3-2. Concrete5
    3-3. Movable Type

  4. dockerhubへ登録

※本記事はMacOSX(yosemite)をベースに記載します。

1. Dockerを動かす

言わずもがなかもしれませんが、DockerはLinuxのコンテナという技術を使用して
仮想環境を構築します。なのでMac直接Dockerを起動させるという事は出来ません。
色々なやり方はありますが、ここではboot2dockerを使用してDocker環境を構築します。

環境

まずはboot2dockerを動かすための環境を準備します。

  • Homebrew
  • VirtualBox

HomebrewとVirtualBoxのインストール方法については割愛します。

上記環境のインストールが環境すると次はboot2dockerのインストールです。
ここではHomebrewからのインストール方法を記載します。

  1. 以下のコマンドを実行
$ 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

docker-compose1
〜途中省略〜
docker-compose2

ここに表示されているDB_HOSTはconcrete5のインストールで使用します

いざ、インストール
docker-compose2

インストール出来ました!!

続きはまた今度で

13
14
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
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?