26
26

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でWordPressを稼働する

Last updated at Posted at 2014-12-20

WordPressをdockerのコンテナで稼働する手順を記載します。

稼働するWordPressは家族・友人での情報共有に使うブログであり、一般には公開しないため以下とします。

  • Webのポート番号は80でなく1224とする。
  • Webの全ページにてBasic認証をかける。ただし、アカウントは1つで共有して利用する。

コンテナで稼働する主な製品は以下です。

  • OS:CentOS 6.6
  • Webサーバ:Apache
  • DBサーバ:MySQL

コンテナを稼働させるホストOSにはCentOS 6.5を使います。

dockerをインストール

sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo yum -y install docker-io

dockerを開始

sudo service docker start
sudo chkconfig docker on

Dockerfileファイルを作成

Dockerfileというファイルを作成し、以下の内容を記載し保存します。ただし、「USER1 PASS1」はBasic認証時のユーザ名とパスワードですので、他に変えた方が良いです。

FROM centos:centos6
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN yum -y install httpd php php-mysql mysql-server tar wget php-gd
WORKDIR /tmp/
RUN wget https://ja.wordpress.org/latest-ja.tar.gz
RUN tar xvfz ./latest-ja.tar.gz
RUN rm -f ./latest-ja.tar.gz
RUN mv wordpress/* /var/www/html/
RUN cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
RUN sed -i -e 's/database_name_here/wordpress/g' -e 's/username_here/wordpress/g' -e 's/password_here/wppass/g' /var/www/html/wp-config.php
RUN sed -i -e 's/AllowOverride\ None/AllowOverride\ AuthConfig/g' /etc/httpd/conf/httpd.conf
RUN echo -e "AuthUserFile /.htpasswd\nAuthName Himitsu\nAuthType Basic\nrequire valid-user" > /var/www/html/.htaccess
RUN htpasswd -cb /.htpasswd USER1 PASS1
RUN chown -R apache.apache /var/www/html/
RUN service mysqld start && mysql -u root -e "CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'wppass'; FLUSH PRIVILEGES;" &&  service mysqld stop
RUN echo -e "service mysqld start\nservice httpd start\n/bin/bash" > /startService.sh
RUN chmod o+x /startService.sh
EXPOSE 80
CMD /startService.sh

コンテナイメージを作成

Dockerfileファイルがあるディレクトリで以下を実行します。

sudo docker build --rm -t mywordpress .

コンテナを稼働

sudo docker run -i -t -d -p 1224:80 -v /share/WordPress1:/share/WordPress1 --name WordPress1 mywordpress

WordPressをセットアップ

ブラウザで以下にアクセスします。するとBasic認証のダイアログが表示されるので、ユーザ名とパスワード(デフォルトだとUSER1,PASS1)を入力してください。次に、指示に従いWordPressをセットアップします。
http://<ホストOSのIPアドレス>:1224/wp-admin/install.php

これでWordPressを利用できるようになりました。

メンテナンス作業

コンソールで作業

sudo docker exec -i -t WordPress1 bash

このexecサブコマンドがサポートされたのはdockerバージョン1.3です。

ファイルをやり取り

コンテナとホストOS間でファイルをやり取りするには/share/WordPress1/が使えます。コンテナとホストOSで同じディレクトリが見えます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?