邢台专业做网站公司,中小企业管理培训课程,邯郸之战,跨境电商平台搭建一、项目背景和要求
公司在实际的生产环境中#xff0c;需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。
然后对此服务进行相关的性能调优和管理工作
二、架构#xff1a;
nginx172.111.0.10docker-nginxmysql172.111.0.20docker-mysqlPHP172.111…一、项目背景和要求
公司在实际的生产环境中需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。
然后对此服务进行相关的性能调优和管理工作
二、架构
nginx172.111.0.10docker-nginxmysql172.111.0.20docker-mysqlPHP172.111.0.30docker-PHP
三、部署过程
#关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 01、创建自定义网络
docker network create --subnet172.111.0.0/16 --opt com.docker.network.bridge.namedocker1 mynetwork2、部署nginx
基于Dockerfile创建nginx镜像 容器ip172.111.0.10
cd /opt
mkdir nginx mysql php
cd nginx将nginx的安装包放到nginx目录中
vim nginx.conf 创建nginx.conf文件后续要将nginx.conf文件COPY到容器中
worker_processes 1;
events {worker_connections 1024;
}
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;charset utf-8;location / {root html;index index.html index.php;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}location ~ \.php$ {root html;fastcgi_pass 172.111.0.30:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;include fastcgi_params;}
}
}nginx Dockerfile
FROM centos:7
RUN yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/local/src/nginx-1.22.0
RUN ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module make -j 4 make install
ENV PATH /usr/local/nginx/sbin:$PATH
COPY nginx.conf /usr/local/nginx/conf/
ADD wordpress-6.4.2-zh_CN.tar.gz /usr/local/nginx/html
RUN chmod -R 777 /usr/local/nginx/html
EXPOSE 80
VOLUME [/usr/local/nginx/html/]
CMD [/usr/local/nginx/sbin/nginx,-g,daemon off;]创建nginx容器
docker build -t nginx:lnmp .启动nginx容器
docker run -itd --name nginx1 -p 80:80 -v /opt/nginx:/opt/nginxlogs --net mynetwork --ip 172.111.0.10 nginx:lnmp检测 20.0.0.51:80
3、部署mysql
基于Dockerfile创建mysql镜像
cd /opt/mysql vim my.cnf
[client]
port 3306
socket/usr/local/mysql/mysql.sock[mysqld]
user mysql
basedir/usr/local/mysql
datadir/usr/local/mysql/data
port 3306
character-set-serverutf8
pid-file /usr/local/mysql/mysqld.pid
socket/usr/local/mysql/mysql.sock
bind-address 0.0.0.0
skip-name-resolve
max_connections2048
default-storage-engineINNODB
max_allowed_packet16M
server-id 1
general_logON
general_log_file/usr/local/mysql/data/mysql_general.logsql_modeNO_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_QUOTESmysql Dockerfile
FROM centos:7
RUN yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c make useradd -M -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_CHARSETutf8 \
-DDEFAULT_COLLATIONutf8_general_ci \
-DWITH_EXTRA_CHARSETSall \
-DWITH_INNOBASE_STORAGE_ENGINE1 \
-DWITH_ARCHIVE_STORAGE_ENGINE1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE1 \
-DMYSQL_DATADIR/usr/local/mysql/data \
-DWITH_BOOSTboost \
-DWITH_SYSTEMD1 make -j 4 make install
COPY my.cnf /etc/my.cnf
EXPOSE 3306
RUN chown -R mysql:mysql /usr/local/mysql chown mysql:mysql /etc/my.cnf
WORKDIR /usr/local/mysql/bin/
RUN ./mysqld \
--initialize-insecure \
--usermysql \
--basedir/usr/local/mysql \
--datadir/usr/local/mysql/data cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl enable mysqld
ENV PATH/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
VOLUME [/usr/local/mysql]
ENTRYPOINT [/usr/sbin/init]创建mysql镜像
docker build -t mysql:lnmp .创建mysql容器
docker run -itd --name mysql -p 3306:3306 --privileged -v /opt/mysql1:/opt/mysql --net mynetwork --ip 172.111.0.20 mysql:lnmp进入容器给权限 mysql -u root -p
create database wordpress;
grant all privileges on wordpress.* to wordpress% identified by 123456;
grant all privileges on *.* to root% identified by 123456;
flush privileges;4、部署php
基于Dockerfile创建php镜像
phpDockerfile
FROM centos:7
RUN yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c make pcre-devel useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix/usr/local/php \
--with-mysql-sock/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip make -j 4 make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
COPY php.ini /usr/local/php/lib
COPY php-fpm.conf /usr/local/php/etc/
COPY www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
ENTRYPOINT [/usr/local/php/sbin/php-fpm,-F]构建镜像
docker build -t php:lnmp .创建容器
docker run -itd --name php -p 9000:9000 --volumes-from nginx1 --volumes-from mysql --net mynetwork --ip 172.111.0.30 php:lnmpdocker exec -it php bash 5、网页构建wordpress论坛