Dockerfileは、ワードプレスを構築するためにlnmpをデプロイします

1つは、環境の展開

1.1システム環境

1.1.1システムバージョン

[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64

1.1.2ファイアウォールをオフにします

systemctl stop firewalld 
systemctl disable firewalld
setenforce 0

1.1.3dockerをインストールする

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce

1.1.4構成の高速化

参照URL:Alibaba Cloud Mirror Acceleration
https://help.aliyun.com/document_detail/60750.html
ここに画像の説明を挿入します

1.2ドキュメントの準備

[root@localhost ~]# cd docker-lnmp/
[root@localhost docker-lnmp]# tree -L 2
.
├── mysql
│   └── mysql-5.6.36.tar.gz
└── nginx
    ├── libmcrypt-2.5.7
    ├── libmcrypt-2.5.7.tar.gz
    ├── nginx-1.12.2.tar.gz
    ├── nginx.conf
    ├── php-5.5.38.tar.gz
    ├── wordpress-4.9.4-zh_CN.tar.gz
    └── wp-config.php

6 directories, 9 files

2、Dockerfileの書き込み

2.1 nginx + phpを書く

[root@localhost ~]# cd docker-lnmp/nginx/
[root@localhost nginx]# vi Dockerfile
FROM centos:7
#部署nginx
RUN yum -y update
RUN yum -y install gcc gcc-c++ openssl-devel openssl automake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make
RUN groupadd  -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin
ADD nginx-1.12.2 nginx-1.12.2
RUN cd /nginx-1.12.2/ && make && make install
RUN ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/
RUN sed -i '1afastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;' /usr/local/nginx/conf/fastcgi_params
ADD nginx.conf /usr/local/nginx/conf/
ADD wordpress /usr/local/nginx/html/wordpress
ADD wp-config.php /usr/local/nginx/html/wordpress
#部署php
RUN yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel  openssl automake make autoconf libtool zlib-devel make pcre-devel wget net-tools
ADD libmcrypt-2.5.7 libmcrypt-2.5.7
RUN cd libmcrypt-2.5.7/&& ./configure --prefix=/usr/local/libmcrypt && make && make install
ADD php-5.5.38 php-5.5.38
RUN  cd php-5.5.38/ && ./configure --prefix=/usr/local/php5.5 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
RUN  cd php-5.5.38 && cp php.ini-production /etc/php.ini
RUN  cd /php-5.5.38 && cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
RUN  chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on
RUN  cp /usr/local/php5.5/etc/php-fpm.conf.default  /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's*;pid = run/php-fpm.pid*pid = run/php-fpm.pid*g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/user = nobody/user = nginx/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/group = nobody/group = nginx/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.max_children = 5/pm.max_children = 50/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 30/g' /usr/local/php5.5/etc/php-fpm.conf
EXPOSE 9000
EXPOSE 80

イメージを構築する

[root@localhost nginx]# pwd
/root/docker-lnmp/nginx
[root@localhost nginx]# docker build -t nginx:new .

ビルドが成功した後にイメージを実行します

[root@localhost nginx]# docker run -itd  -p 80:80 镜像ID /bin/bash

ここに画像の説明を挿入します
コンテナに入る

[root@localhost nginx]# docker exec -it 容器ID /bin/bash
[root@6de6688f3e6c /]# /etc/init.d/php-fpm start && nginx

2.2mysqlの記述

2.2.1 Dockerfile

[root@localhost mysql]# vi Dockerfile 
FROM centos:7
MAINTAINER this is mysql
RUN yum -y update
RUN yum -y install make gcc gcc-c++ pcre-devel zlib-devel ncurses ncurses-devel bison cmake
RUN useradd -s /sbin/nologin mysql
ADD mysql-boost-5.7.20.tar.gz  /usr/local/src
WORKDIR /usr/local/src/mysql-5.7.20/
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
RUN make && make install -j 4
RUN chown -R mysql.mysql /usr/local/mysql/
ADD my.cnf /etc/
ENV PATH /usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
RUN mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
EXPOSE 3306
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

2.2.2 run.sh

[root@localhost mysql]# cat run.sh 
#!/bin/bash
/usr/local/mysql/bin/mysqld
systemctl enable mysqld

2.2.3 my.cnf

[root@localhost mysql]# cat my.cnf 
[client]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server = utf8
pid-file = /usr/local/mysql/mysql.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=No_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost mysql]# 

3、ワードプレスをインストールします

3.1コンテナを入力してワードプレスライブラリを作成します

[root@localhost docker-lnmp]# docker exec -it 97 /bin/bash
[root@974ca6cc5f59 mysql-5.7.20]# mysqladmin -uroot -p password '123456'

ここに画像の説明を挿入します

3.2データベースを承認する

[root@974ca6cc5f59 mysql-5.7.20]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, 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> create database wordpress default charset utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on wordpress.*  to 'wordpress'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
[root@974ca6cc5f59 mysql-5.7.20]# 

3.3ウェブページのワードプレスにアクセス

http:// host IP / wordpress / index.php

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_50345511/article/details/114700942
おすすめ