Dockerfile镜像搭建LNMP

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Dockerfile镜像搭建LNMP脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、环境准备

1、关闭火墙
Systemctl status firewalld.service
setenforce 0

2、拉取centos:7镜像
docker pull centos:7

3、自定义网络
docker network create --subnet=172.18.0.0/16 --opt "com.docker wangt.cc work.bridge.name"="docker1"  mynetwork

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

二、部署nginx(容器IP 为 172.18.0.10)

mkdir /opt/nginx
cd /opt/nginx/

上传 nginx-1.12.2.tar.gz、wordPress-4.9.4-zh_CN.tar.gz 到 /opt/nginx/ 目录中
mkdir /opt/nginx/htML
tar zxvf wordPRess-4.9.4-zh_CN.tar.gz -C /opt/nginx/html

vim Dockerfile

From centos:7
MaiNTAINER this is nginx image <lsq>
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/noLOGin nginx
ADD nginx-1.12.2.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.2
RUN ./configure 
--prefix=/usr/local/nginx 
--user=nginx 
--group=nginx 
--wITh-http_stub_status_module && make -j6 &amp;& make install
env PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
RUN chmod 777 -R /usr/local/nginx/html/
ExpOSE 80
EXPOSE 443
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]


docker build -t nginx:lnmp .

docker run -d --name nginx -p 80:80 
-v /opt/nginx/html:/usr/local/nginx/html 
--net mynetwork --ip 172.18.0.10 nginx:lnmp

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

三、部署MySQL(容器IP 为 172.18.0.20)

mkdir /opt/mySQLd
cd /opt/mysqld

上传 mysql-boost-5.7.20.tar.gz 到 /opt/mysqld 目录中

vim Dockerfile

From centos:7
MAINTAINER this is mysql image <lsq>
RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison @R_913_1512@ make
RUN 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_CHARSET=utf8  
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_EXTRA_CHARSETS=all 
-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 && make -j6 && make install
RUN chown -R mysql:mysql /usr/local/mysql/
RUN rm -rf /etc/my wangt.cc f
ADD my wangt.cc f /etc/
RUN chown mysql:mysql /etc/my wangt.cc f
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
WORKDIR /usr/local/mysql/
RUN bin/mysqld 
--initialize-insecure 
--user=mysql 
--basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data
RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
EXPOSE 3306
ADD run.sh /usr/local/src
RUN chmod 755 /usr/local/src/run.sh
RUN sh /usr/local/src/run.sh

vim my wangt.cc f
[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/mysqld.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


vim run.sh
#!/bin/bash
/usr/local/mysql/bin/mysqld
systemctl enable mysqld


docker build -t mysql:lnmp .

docker run --name=mysql -d --privileged -v /usr/local/mysql --net mynetwork --ip 172.18.0.20 mysql:lnmp /usr/sbin/init

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

四、部署php(容器IP 为 172.18.0.30)

mkdir /opt/php
cd /opt/php
 
上传 php-7.1.10.tar.bz2 到 /opt/php 目录中
 
vim Dockerfile

FROM centos:7
MAINTAINER this is php image <zhi>
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 
RUN 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 -j8 && make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini	/usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD 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 --name=php -d -p 9000:9000 --volumes-from mysql --volumes-from nginx --net mynetwork --ip 172.18.0.30 php:lnmp

docker exec -it mysql /bin/bash

mysql
create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
flush privileges;

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

@H_771_126@

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

Dockerfile镜像搭建LNMP

五、浏览器访问:

http://192.168.237.10/wordpress/index.php

Dockerfile镜像搭建LNMP

脚本宝典总结

以上是脚本宝典为你收集整理的Dockerfile镜像搭建LNMP全部内容,希望文章能够帮你解决Dockerfile镜像搭建LNMP所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。