当前位置: 首页 > news >正文

用docker-compose搭建LNMP

docker-compose搭建LNMP

    • 一、compose 的部署
      • 1.Docker Compose 环境安装
    • 二、编写Docker Compose
      • 1.准备依赖文件,配置nginx
      • 2.配置mysql
      • 3.配置php
      • 4.编写docker-compose.yml
      • 5.执行
      • 6.查看

一、compose 的部署

(1)公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务使用docker-compose管理工作。

(2)环境描述
在这里插入图片描述

1.Docker Compose 环境安装

#下载
curl -L https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose#也可直接将docker compose 上传
ls docker-compose 
docker-compose
#修改权限,给与执行权限
chmod +x /usr/local/bin/docker-compose
docker-compose --version
Docker Compose version v2.0.1

在这里插入图片描述

二、编写Docker Compose

1.准备依赖文件,配置nginx

yum -y install tree
mkdir -p /opt/compose_nginx/nginx /opt/compose_nginx/wwwroot
cd /opt/compose_nginx/nginx
cp nginx-1.12.0.tar.gz ./vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginxvim Dockerfile
#基于基础镜像
FROM centos:7
#用户信息
MAINTAINER this is nginx image <exo>
#添加环境包
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
#上传nginx软件压缩包,并解压
ADD nginx-1.12.0.tar.gz /usr/local/src/
#指定工作目录
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
#指定http和https端口
EXPOSE 80
EXPOSE 443
//方法一:
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf			#关闭 nginx 在后台运行
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
//方法二:
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]

2.配置mysql

mkdir /opt/mysql
cd /opt/mysql/
rz -E
rz waiting to receive.
#传入mysql安装包mysql-boost-5.7.20.tar.gz
[root@docker mysql]# vim Dockerfile FROM centos:7
MAINTAINER this is mysql image <exo>
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 -j4;make install
ADD 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 enable mysqld
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
VOLUME [ "/usr/local/mysql" ]
CMD ["/usr/sbin/init"]

3.配置php

mkdir ../php
cd ../php/
rz -E
rz waiting to receive.
#传入php安装包php-7.1.10.tar.bz2
vim Dockerfile FROM centos:7
MAINTAINER this is php image <exo>
RUN yum install -y 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
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
CMD /usr/local/php/sbin/php-fpm -F

4.编写docker-compose.yml

#先拉取镜像centos:7
docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
Status: Downloaded newer image for centos:7
docker.io/library/centos:7version: '3'
services:nginx:container_name: nginxhostname: nginxbuild:context: /opt/compose_nginx/nginxdockerfile: Dockerfileports:- 1216:80- 1217:443networks:lnmp:ipv4_address: 172.18.0.10volumes:- ./wwwroot:/usr/local/nginx/htmlmysql:container_name: mysqlhostname: mysqlbuild:context: /opt/compose_nginx/mysqldockerfile: Dockerfileports:- 3306:3306networks:lnmp:ipv4_address: 172.18.0.20volumes:- /usr/local/mysqlphp:container_name: phphostname: phpbuild:context: /opt/compose_nginx/phpdockerfile: Dockerfileports:- 9000:9000networks:lnmp:ipv4_address: 172.18.0.30volumes_from:- nginx- mysqldepends_on:- nginx- mysqllinks:- nginx- mysql
networks:lnmp:driver: bridgeipam:config:- subnet: 172.18.0.0/16

5.执行

docker-compose -f docker-compose.yml up -d 

在这里插入图片描述

6.查看

docker-compose ps
在这里插入图片描述

  • 浏览器访问:
    在这里插入图片描述
http://www.lryc.cn/news/140206.html

相关文章:

  • JavaScript:基本语法(变量与函数的定义与使用)
  • 树莓派4B上安装Gitlab
  • JVM 之字节码(.class)文件
  • neo4j函数
  • wazuh初探系列一 : wazuh环境配置
  • 【2023】Spring Validation中@NotNull注解、@NotBlank注解介绍以及使用
  • nodejs+vue养老院管理系统 u1yrv
  • 高效PDF校对:释放高质量内容的力量
  • 【Git游戏】提交的技巧
  • SQL注入读写文件
  • stm32之12.如何使用printf打印输出
  • 敏感挂载hotplug容器逃逸分析与复现
  • RTThread学习有关的Keil的两个符号 $Sub$ $main 与 $Super$ $main
  • Python实现企业微信群告警
  • python基础教程:re模块用法详解
  • 基于亚马逊云科技无服务器服务快速搭建电商平台——部署篇
  • git介绍+集成到IDEA中+使用gitee
  • 【java】【项目实战】[外卖四]分类管理业务开发
  • 【Go 基础篇】Go语言包详解:模块化开发与代码复用
  • 【业务功能篇82】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-进阶实战
  • 【工具】XML和JSON互相转换
  • 前端面试:【浏览器与渲染引擎】Web APIs - DOM、XHR、Fetch、Canvas
  • 编码基础一:侵入式链表
  • 深圳IT行业供需:蓬勃发展的科技中心
  • LeetCode 面试题 02.01. 移除重复节点
  • 【Java8特性】——Stream API
  • grep命令的用法
  • 【无标题】jenkins消息模板(飞书)
  • 2023年国赛 高教社杯数学建模思路 - 案例:随机森林
  • element Collapse 折叠面板 绑定事件