#目的
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 テーマ開発環境を構築しよう