docker-compose 部署lnmp

docker-compose 部署lnmp

1、简介
docker 和 docker-compose部署在宿主机上
mysql部署宿主机上
php和nginx跑docker容器
2、文件目录
在这里插入图片描述
3、docker 和 docker-compose部署
docker安装

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#安装esp源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker-ce
yum install -y docker-ce
#docker-compose安装,下载地址:http://get.daocloud.io/#install-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#添加可执行权限
chmod +x /usr/local/bin/docker-compose
#创建软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#重启docker
systemctl restart docker

4、安装mysql5.7
5、部署nginx容器
5.1、nginx目录详情
在这里插入图片描述
5.2、下载nginx包
http://nginx.org/en/download.html
5.3、编写nginx的dockerfile

vim dockerfile
FROM centos:7
MAINTAINER cyz
#安装依赖包
RUN yum install -y gcc gcc-c++ make \
    openssl-devel pcre-devel gd-devel \
    iproute net-tools telnet wget curl  --nogpgcheck&& \
    yum clean all && \
    rm -rf /var/cache/yum/*
#下载nginx包,并编译安装
RUN wget http://nginx.org/download/nginx-1.19.10.tar.gz && \
    tar zxf nginx-1.19.10.tar.gz && \
    cd nginx-1.19.10 &&\
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module && \
    make -j 4 && make install && \
    rm -rf /usr/local/nginx/html/* && \
    echo "ok" >> /usr/local/nginx/html/status.html && \
    cd / && rm -rf nginx-1.19.10* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#设置环境变量
ENV PATH $PATH:/usr/local/nginx/sbin
#拷贝宿主机的上配置文件到容器内
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
RUN mkdir -p /usr/share/nginx
#ADD ssl.tar.gz /usr/share/nginx/ssl
#设置工作目录
WORKDIR /usr/local/nginx
#设置端口
EXPOSE 80
EXPOSE 443
#运行nginx
CMD ["nginx", "-g", "daemon off;"]

5.4、编辑配置文件nginx.conf

[root@CentOS7-on-line nginx]# vim  nginx.conf 

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
     }

    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root     /var/www/html; #工作目录,源码存放位置
            index  index.html index.htm index.php;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /var/www/html;
        }
        #配置代理php
        location ~ \.php$ {
            root   /var/www/html; #工作目录,源码存放位置
            fastcgi_pass   my-php:9000; #my-php 容器名称
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
#           nginx代理websocket
            proxy_http_version 1.1;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_read_timeout 3600s;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Upgrade $http_upgrade;
        }
    }
}

6、部署php容器
编写php的dockerfile

[root@CentOS7-on-line 8.0.6]# vim Dockerfile 

FROM php:8.0.6-fpm
MAINTAINER cyz
EXPOSE 9000

RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

#安装依赖包
RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libpng-dev \
    libsqlite3-dev \
    libssl-dev \
    libcurl3-dev \
    libxml2-dev \
    libzzip-dev
#安装php扩展库 mysql gd
RUN apt-get update && docker-php-ext-install mysqli  pdo_mysql && docker-php-ext-install gd

7、编写docker-compose.yml文件

[root@CentOS7-on-line docker-lnmp]# vim docker-compose.yml 

version: "3"
services:
#php 容器
  php:
    build: ./php/8.0.6
    container_name: my-php  #容器名称
    volumes:   #挂载到宿主机目录下
      - /home/docker-lnmp/www:/var/www/html
      - /home/docker-lnmp/logs/JTBC/nginx-logs:/var/log/nginx
    ports: #端口
     - 9000:9000
    networks:  #容器所属网络
     - lnmp
#nginx 容器
  nginx:
    build: ./nginx
    container_name: my-nginx  #容器名称
    depends_on:  #依赖容器,需要php启动成功再启动nginx
      - php
    volumes: #挂载到宿主机目录下
      - /home/docker-lnmp/www:/var/www/html 
      - /home/docker-lnmp/logs/JTBC/php-logs:/var/log/php
#    links:
#      - php:php-fpm
    ports: #端口
      - 80:80
    networks: #所属网络
      - lnmp

networks: #自定义网络
   lnmp:

8、执行docker-compose

docker-compose up -d  #-d 表示后台执行

在这里插入图片描述
9、测试

[root@CentOS7-on-line nginx]# cat index.php 
<?php
phpinfo();
?>

浏览器访问:ip+端口
在这里插入图片描述
禁止转载!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值