目的
Dockerの理解を深めたいと考え、Docker-Composeを用いてWordpressの構築を行いました。
条件設定
・AmazonLinux2のイメージを用いて構築する
・WEB用とDB用のコンテナそれそれ2台を用いる
・データの永続化
ログ記事を書いた後に、コンテナの再起動をしても書いたブログ記事がちゃんと
残ってるかどうか
環境設定
・docker ver3.8
・php ver7.3
・Apache
・MySQL
・mariadb
構成
/opt/project
l L docker-compose.yml
l---web
l l-Dockerfile
l---db
l-Dockerfile
l-wordpress
l-db.opt
手順
1.ルート権限になる
# sudo su -
2.Dockerのインストール
# yum install docker
3.dockerの起動
# systemctl start docker
4.dockerのプロセスが通っているかの確認
# ps -ef | grep docker
5.dockerのシステム起動の確認
# systemctl status docker
6.作業ディレクトリの作成・移動
# mkdir /opt/project && cd /opt/project
7.web/dbのディレクトリを作成
# mkdir web
# mkdir db
8.ymlファイルを作成
# vi docker-compose.yml
-----------------------------------------
version: "3.8"
services:
# ./webに作成したwordpressのDockerfileを使用して"docker-compose build"でwebという名前のイメージを作成
web:
container_name: web
build: ./web
#ポート番号の指定
ports:
- "80:80"
tty: true
# ./dbに作成したMySQLのDockerfileを使用して"docker-compose build"でdbという名前のイメージを作成
db:
container_name: db
build: ./db
#ポート番号の指定
ports:
- "3306:3306"
tty: true
-----------------------------------------
9.wordpressのDockerfileを作成
# cd /opt/project/web && vi Dockerfile
-----------------------------------------
# AmazonLinux2の環境を使用
FROM amazonlinux:2
# 初期装備をインストール
RUN yum -y install yum-utils tar wget procps epel-release
RUN yum clean all
# Apacheインストール
RUN yum -y install httpd
# PHPのインストール
RUN amazon-linux-extras enable php7.3
RUN yum install -y php php-gd php-mysqlnd php-xmlrpc
# wordpressインストール
# ENV wpdl https://wordpress.org/latest-ja.tar.gz
# wp download
# RUN cd /var/www/html && wget -O - $wpdl | tar xzfv -
# RUN mv /var/www/html/wordpress/* /var/www/html
RUN wget https://wordpress.org/latest.tar.gz
RUN tar -xzvf latest.tar.gz
RUN mv /wordpress/* /var/www/html
RUN chown -R apache:apache /var/www/html
RUN chmod 2775 /var/www/html
CMD [ "/usr/sbin/httpd", "-D", "FOREGROUND" ]
-----------------------------------------
10.データベースのDockerfileを作成
# cd /opt/project/db && vi Dockerfile
-----------------------------------------
FROM amazonlinux:2
# 初期装備をインストール
RUN yum install -y yum-utils tar wget procps epel-release
# インストール
RUN yum -y install mariadb mariadb-server
# pingコマンド使用
RUN yum install -y iputils
# port確認
EXPOSE 3306
# DB作成
RUN mkdir /var/lib/mysql/wordpress/
COPY ./wordpress /var/lib/mysql/wordpress/
RUN chown -R mysql:mysql /var/lib/mysql/wordpress
# mariadbの起動
CMD ["/usr/bin/mysqld_safe" ,"--skip-grant-tables"]
-----------------------------------------
11.dbのイメージを作成する際に必要なファイルを作成
# mkdir /opt/project/db/wordpress && vi /opt/project/db/wordpress/db.opt
-----------------------------------------
default-character-set=latin1
default-collation=latin1_swedish_ci
-----------------------------------------
12.docker-composeでイメージをビルド
# cd /opt/prject
# docker-compose build
13.作成したイメージの確認
# docker images
14.docker-composeでコンテナを作成
# docker-compose up -d
15.作成したコンテナの確認
# docker ps
# docker-compose ps
16.WEBでログインしてwordpressをインストール
~データベースの選択画面~
データベース名: wordpress
ユーザ名: 空白
パスワード: 空白
データベースのホスト名:db
※データベースのコンテナ名
テーブルの接頭辞:wp_ (そのまま)
でインストール!!
次の課題の確認のため、何か一つ思いのたけを投稿しておく。。。
参考
滅びの呪文
初心者はdocker-composeから始めた方がいいかもしれない説
Docker Compose を使う
データの永続化
1.dockerボリュームを作成
# docker volume create mariadb
2.docker-compose.ymlにvolumesを追加
# cd /var/project/ && vi docker-compose.yml
---------------------------------------------
version: "3.8"
services:
web:
~要約~
#ボリュームを使いWEBデータを永続化
volumes:
- wordpress/:/var/www/html
~~~~~~~~~~~~~~~~~~~~~~~
db:
~要約~
#ボリュームを使いDBデータを永続化
volumes:
- mariadb:/var/lib/mysql
~~~~~~~~~~~~~~~~~~~~~~~
# databaseのように永続的なストレージが欲しい場合に必要な設定
volumes:
mariadb:
wordpress:
---------------------------------------------
3.dockerコンテナを一度削除
# docker-compose down -v
4.docker-composeでコンテナを再作成
# docker-compose up -d
5.WEBでログインして確認
参考②
Docker-Compose persistent data MySQL
Dockerのデータを永続化!Data Volume(データボリューム)の理解から始める環境構築入門
docker-compose を使って WordPress テーマ開発環境を構築しよう