33
35

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 2015-02-06

Dockerでwordpressの環境構築

開発環境

  • ubuntu 14.04

この記事の目的

  • Dockerのチュートリアル終わって次何しよっかーって状態になった。
  • 実際にちゃんと動くもの見ないとイメージつかないなと思ったので身近なwordpressを選択
  • Docker Hubでwordpressのコンテナあるし試してみよう

https://registry.hub.docker.com/_/wordpress/

この記事でやっていること

  • Docker Hubからwordpressのイメージ持ってくる
  • Docker Hubからmysqlのイメージ持ってきて起動
  • 再度wordpressを立ち上げる
  • wordpressの動作確認

Docker Hubからwordpressのイメージ持ってくる

  • 結構時間かかった。
    • 3分ぐらい?
$ docker pull wordpress

Pulling repository wordpress
9f51af77fd96: Pulling dependent layers

~ 省略 ~

30ba4a4304b4: Download complete
b2aa6b070112: Download complete
d49f43e6ad6b: Downloading [=================================================> ] 1.366 MB/1.372 MB 0
2015/02/06 05:19:29 unexpected EOF
  • ついでにgithubからソースコード持ってくる
$ git clone git@github.com:docker-library/wordpress.git
  • buildしてみる
$ docker build -t hoge:wordpress ./
  • とりあえずsshで入ってみる
$ docker run -it hoge:wordpress /bin/bash
error: missing MYSQL_PORT_3306_TCP environment variable
  Did you forget to --link some_mysql_container:mysql ?
  • 怒られる
    • Mysqlの設定がない?
      • run する時に --link some_mysql_container:mysql をつけろとのこと
      • つまりmysqlコンテナ作れってことか

Docker Hubからmysqlのイメージ持ってきて起動

$ docker pull mysql
$ git clone git@github.com:docker-library/mysql.git
  • 5.6入れてみた
$ cd mysql/5.6
$ docker build -t hoge:mysql56 ./
  • runする時に環境変数でパスワードを渡す
$ docker run --name hoge_mysql56 -e MYSQL_ROOT_PASSWORD=hogehoge -d hoge:mysql56
  • 念のため立ち上がってるの確認
$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
0d23478ffce2        hoge-mysql:latest   /entrypoint.sh mysql   8 seconds ago       Up 7 seconds        3306/tcp            hoge_mysql56
  • mysqlに接続してみる
$ docker run -it --link hoge_mysql56:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

再度wordpressを立ち上げる

  • build
$ docker build -t hoge:wordpress ./
  • sshで繋ぐ
$ docker run -it --link hoge_mysql56:mysql hoge:wordpress /bin/bash
WordPress not found in /var/www/html - copying now...
WARNING: /var/www/html is not empty - press Ctrl+C now if this is an error!
+ ls -A
index.html
+ sleep 10
Complete! WordPress has been successfully copied to /var/www/html
$ root@752f6b311b98:/var/www/html#
  • とりあえず ls
    • 色々wordpress関連のものが入ってるのがわかった
$ ls -al
total 204
drwxr-xr-x  5 www-data www-data  4096 Feb  6 09:07 .
drwxr-xr-x  3 root     root      4096 Jan 27 19:05 ..
-rw-r--r--  1 www-data www-data   163 Feb  6 09:07 .htaccess
-rw-r--r--  1 www-data www-data 11104 Jan 27 19:04 index.html
-rw-r--r--  1 www-data www-data   418 Sep 25  2013 index.php
-rw-r--r--  1 www-data www-data 19930 Apr  9  2014 license.txt
-rw-r--r--  1 www-data www-data  7193 Sep 29 13:24 readme.html
-rw-r--r--  1 www-data www-data  4951 Aug 20 17:30 wp-activate.php
drwxr-xr-x  9 www-data www-data  4096 Dec 18 18:18 wp-admin
-rw-r--r--  1 www-data www-data   271 Jan  8  2012 wp-blog-header.php
-rw-r--r--  1 www-data www-data  5008 Nov 26 20:17 wp-comments-post.php
-rw-r--r--  1 www-data www-data  2726 Sep  9 01:23 wp-config-sample.php
-rw-r--r--  1 www-data www-data  3108 Feb  6 09:07 wp-config.php
drwxr-xr-x  4 www-data www-data  4096 Dec 18 18:18 wp-content
-rw-r--r--  1 www-data www-data  2956 May 13  2014 wp-cron.php
drwxr-xr-x 12 www-data www-data  4096 Dec 18 18:18 wp-includes
-rw-r--r--  1 www-data www-data  2380 Oct 24  2013 wp-links-opml.php
-rw-r--r--  1 www-data www-data  2714 Jul  7  2014 wp-load.php
-rw-r--r--  1 www-data www-data 33435 Dec 16 22:19 wp-login.php
-rw-r--r--  1 www-data www-data  8252 Jul 17  2014 wp-mail.php
-rw-r--r--  1 www-data www-data 11115 Jul 18  2014 wp-settings.php
-rw-r--r--  1 www-data www-data 25152 Nov 30 21:23 wp-signup.php
-rw-r--r--  1 www-data www-data  4035 Nov 30 21:23 wp-trackback.php
-rw-r--r--  1 www-data www-data  3032 Feb  9  2014 xmlrpc.php
  • wp-config.phpはどうなっってるか確認
~  ~

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'hogehoge');

/** MySQL hostname */
define('DB_HOST', 'mysql');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

~  ~
  • define('DB_HOST', 'mysql');
    • ????
$ cat /etc/hosts
172.17.0.30	e23bf7b37582
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.21	mysql
  • なるほど

wordpressの動作確認

  • さっき作ったコンテナは捨てて再度立ち上げる
    • ホストOSの8080番をコンテナの80番に割り当てる
$ docker run --name hoge_wordpress -d -p 8080:80 --link hoge_mysql56:mysql hoge:wordpress
  • ブラウザで確認

http://localhost:8080 にアクセス

まとめ

Dockerの作法であったりコンテナ同士の繋がりがわかってきた。
今後はコンテナの構築を中心にやっていきたい。

33
35
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
33
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?