赞
踩
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+端口
禁止转载!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。