使用Docker-compose通过WEB和DB的Dockerfile构建WordPress
目标
为了加深对Docker的理解,我使用Docker-Compose构建了一个WordPress。
设定条件
使用AmazonLinux2映像构建容器
分别使用2个容器用于WEB和DB
数据持久化
在写完日志后,无论容器如何重启,写的博客文章都会保留下来。
环境设置
・Docker版本3.8
・PHP版本7.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
/ 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
确认Docker进程的通畅性。
# ps -ef | grep docker
确认 Docker 系统的启动
# systemctl status docker
6. 创建并切换到工作目录。
# mkdir /opt/project && cd /opt/project
创建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
-----------------------------------------
创建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"]
-----------------------------------------
创建制作DB图像所需的文件。
# mkdir /opt/project/db/wordpress && vi /opt/project/db/wordpress/db.opt
-----------------------------------------
default-character-set=latin1
default-collation=latin1_swedish_ci
-----------------------------------------
使用docker-compose构建镜像。
# cd /opt/prject
# docker-compose build
确认已创建的图像
#docker images
使用docker-compose创建容器
# docker-compose up -d
确认已创建的容器
# docker ps
# docker-compose ps
16. 使用网络登录并安装WordPress
http://グローバルIP
~数据库选择页面~
数据库名:wordpress
用户名:空白
密码:空白
数据库主机名:db
※数据库容器名
表前缀:wp_ (保持原样)
安装完成!!
为了确认下一个任务,请随便发表一篇想法。
请提供一个句子或短语以供改写。
使用Docker Compose可能是初学者的一个好的起点:
滅びの呪文 -> 毁灭的咒语
初心者はdocker-composeから始めた方がいいかもしれない説 -> 对于初学者来说,也许从docker-compose开始较好
Docker Compose を使う -> 使用Docker Compose
数据持久化
创建Docker卷
# docker volume create mariadb
在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:
---------------------------------------------
一次删除Docker容器
# docker-compose down -v
使用docker-compose重新创建容器。
# docker-compose up -d
在网上登录并确认。
http://全球IP
以下是参考资料2.
使用 Docker-Compose 永久化数据 MySQL
从理解 Data Volume(数据卷)开始进行环境构建入门
使用 docker-compose 来构建 WordPress 主题开发环境