Dockerfile创建镜像LNMP+WordPress

目录

实验部署

nginx

配置mysql

配置php


实验部署

INMP+wordpress

nginx 172.111.0.10 docker-nginx

mysql 172.111.0.20 docker-mysql

php 172.111.0.30 docker-php

nginx
关闭防火墙和安全机制

在opt目录创建nginx MySQL php目录
cd nginx mysql php
vim Dockerfile

#声明基础镜像
FROM centos:7
#安装依赖环境
RUN yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel && useradd -M -s /sbin/nologin nginx
#解压源码包
ADD nginx-1.22.0.tar.gz /usr/local/src
#指定工作目录
WORKDIR /usr/local/src/nginx-1.22.0
#配置和编译安装
RUN ./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--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 777 -R /usr/local/nginx/html
EXPOSE 80
#创建容器内的数据卷,即可以对外给宿主机挂载,也可以对内,给容器作为挂载点
VOLUME ["/usr/local/nginx/html/"]
#设定容器启动时的命令
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

nginx.conf文件
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;
        }
}
}

创建自定义网络
docker network create --subnet=172.111.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
查看自定义网段
docker network ls
删除自定义网段 
docker network rm -rf

docker build -t nginx:lnmp .
docker run -itd --name nginx1  -p80:80 -v /opt/nginx:/opt/nginxlogs --net mynetwork --ip 172.111.0.10 nginx:lnmp
配置mysql
配置mysql

cd /mysql 
把源码拖到mysql目录下
vim 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_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 -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 \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data &&  cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ && systemctl daemon-reload
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
VOLUME ["/usr/local/mysql"]
ENTRYPOINT ["/usr/sbin/init"]

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-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log

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

docker build -t mysql:lnmp .
docker run -itd --name mysql1 -p 3306:3306 --privileged -v /opt/mysql1:/opt/mysql --net mynetwork --ip 172.111.0.20 mysql:lnpm

docker exec -it mysql1 bash
mysql -uroot -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;
配置php
把源码文件拖到php目录下
vim Dockerfile 
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 nginx --volumes-from mysql1 --net mynetwork --ip 172.111.0.30 php:lnmp

20.0.0.30/wordpress/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/248069.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rabbitmq-windows安装使用-简易后台界面-修改密码

文章目录 1.下载2.安装3.安装 RabbitMQ4.后台访问5.修改密码 1.下载 将erlang运行时和rabbitmq-windows版本,上传在csdn,下载链接。https://download.csdn.net/download/m0_67316550/88633443 2.安装 右键,以管理员身份运行rabbitmq。启动…

mysql:修改整数字段的显式长度不生效

例如,我使用mysql 8.2.0版本,想修改整数字段的显式长度,不会生效,提醒整数的显示长度已经废弃,会在将来某个版本去掉: mysql官网中也有说明: https://dev.mysql.com/doc/refman/8.2/en/numeric…

【JetBrains】将Gateway中的GoLand回滚到无bug旧版本

问题背景 2023-12-15 我把 Gateway 中使用的 GoLand 从 2023.2.x 升级到了 2023.3 ,然后编辑文件过程中输入时时不时会显示错误信息,然后就会进入无法输入(键入也不会看到增加字符)但能粘贴的奇怪状态。 问题解决 升级到 2023.…

canvas基本绘制对象

目录 绘制画布 设置画布 绘制圆形 绘制矩形填充渐变色 绘制文字及文字样式 绘制画布 <canvas id"canvas" width"800" height"600"></canvas> 设置画布 //获得画布元素var canvasdocument.getElementById(canvas);var ctxca…

Android BluetoothAdapter 使用(二)

Android BluetoothAdapter 使用(二) 本篇文章主要讲下蓝牙设备的配对. 1: 蓝牙设备列表展示 下 面是蓝牙设备adapter的代码: package com.test.bluetooth;import android.bluetooth.BluetoothDevice; import android.content.Context; import android.view.LayoutInflater;…

人工智能多模态:看、听、说,智能感知的全方位融合

导言 人工智能多模态技术是指通过整合视觉、听觉、语言等多个感知模态的信息&#xff0c;实现对丰富、多样化数据的理解与处理。本文将深入研究人工智能多模态的技术原理、应用场景以及对未来感知智能的影响。 1. 简介 人工智能多模态技术通过整合多个感知模态的信息&#xff…

医学检验系统LIS源码,C# +.Net+Oracle

LIS是HIS的一个组成部分&#xff0c;通过与HIS的无缝连接可以共享HIS中的信息资源&#xff0c;使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。  体系结构&#xff1a;Client/Server架构 客户端&#xff1a;WPFWindows Forms 服务端&#xff1a;C…

stm32项目(12)——基于stm32f407zgt6的频率计设计

1.项目功能 配置stm32自带的定时器&#xff0c;以一定的周期产生中断&#xff0c;在中断服务函数里面&#xff0c;对某个IO口进行取反&#xff0c;这样就在该管脚上产生了一定频率的方波&#xff08;频率可以用按键调节&#xff09;。然后再使用stm32的捕获功能&#xff0c;对产…

解决nuxt3环境中css样式失效的问题

现象: 底部播放器进度条拖动按钮没有了&#xff01; 然后通过chrome开发工具检查html元素的结构&#xff1a; 发现progressbar这个元素是存在的&#xff0c;但是为什么没有显示呢&#xff0c;然后回到代码中&#xff1a; 发现原来是组件的名字写错了&#xff0c;多写了一个字母…

安恒明御安全网关 aaa_local_web_preview文件上传漏洞复现

0x01 产品简介 明御安全网关秉持安全可视、简单有效的理念,以资产为视角,构建全流程防御的下一代安全防护体系,并融合传统防火墙、入侵检测、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。 0x02 漏洞概述 明御安全网关在…

Axure动态面-轮播图案例,多方式登录案例,后台主界面左侧侧边栏案例

一.轮播图案例 二.多方式登录案例 三. 后台主界面左侧侧边栏案例

中国社科院与新加坡新跃社科大联合培养博士—平凡≠平庸

英国文艺评论家赫兹利特说过&#xff0c;书籍深透骨髓&#xff0c;诗随血液回圈。小时候读书的美好感受&#xff0c;至今犹存。书中所言他人之事&#xff0c;更使我们如身临其境。无论何时何地&#xff0c;好书无须倾尽囊中物便可得之&#xff0c;而我们的呼吸也会充满书香之气…

【开源软件】最好的开源软件-2023-第16名 Hypertrace

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

数据结构(7.5)-- 树扩展之字典树

一、字典树 1、字典树介绍 字典树&#xff0c;也称为“前缀树”&#xff0c;是一种特殊的树状数据结构&#xff0c;对于解决字符串相关问题非常有效。典型 用于统计、排序、和保存大量字符串。所以经常被搜索引擎系统用于文本词频统计。它的优点是&#xff1a; 利用字符串的…

i春秋云镜之Initial

首先拿到目标IP&#xff1a;39.99.156.72 通过Fscan进行扫描发现存在Thinkphp RCE漏洞。 ./fscan_amd64 -h 39.99.156.72然后通过利用工具进行RCE。 我们进行getshell之后通过蚁剑进行连接。 反弹shell并转换成python 交互式shell。 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/b…

年复合增长率+5.01%!赛盈分销洞察2024年办公家具赛道出海新风向!

近两年&#xff0c;办公家具消费有所下滑&#xff0c;行业的红利看似已经过去&#xff0c;很多家具企业反馈市场不行&#xff0c;利润被疯狂稀释&#xff0c;苟延残喘。但放眼全球来看&#xff0c;办公家具生产的需求其实被按下了“加速键”。 根据Statista数据显示&#xff0c…

PR模板,漂亮的文字帖子视频模板,方形标题PR项目工程文件下载

Premiere Pro模板&#xff0c;具有6个方形设计PR视频帖子标题文字PR项目工程文件。使用附带的颜色控制器调整和修改颜色&#xff0c;与您自己的品牌相匹配。使用这些效果来增强视频画面。包括视频教程。 适用软件&#xff1a;PR2019 | 分辨率&#xff1a;10801080&#xff08;方…

linux系统命令

linux常用命令 端口相关文件目录管理文件查看文件属性日志查看系统命令防火墙相关命令 端口相关 netstat -ntpl # 查询linux系统tcp端口情况 fuser -n tcp 80 # 查询80端口是否被占用 lsof -i:<port> lsof -i:9099 | grep java lsof -i :9099 | awk {print $2, $1, $3}文…

DDOS 攻击是什么?有哪些常见的DDOS攻击?

DDOS简介 DDOS又称为分布式拒绝服务&#xff0c;全称是Distributed Denial of Service。DDOS本是利用合理的请求造成资源过载&#xff0c;导致服务不可用&#xff0c;从而造成服务器拒绝正常流量服务。就如酒店里的房间是有固定的数量的&#xff0c;比如一个酒店有50个房间&am…

2.electron之纯原生js/jquery的桌面应用程序(应用篇)

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中&#xff0c;因此它允许你仅需一个代码仓库&#xff0c;就可以撰写支持 Windows、…
最新文章