docker 搭建nginx php mysql_docker搭建nginx+mysql+php

本文介绍了如何在Mac环境下使用Docker搭建Nginx、PHP5.6和PHP7.2以及MySQL的本地服务。通过拉取官方镜像,创建并配置容器,实现了容器间的互联,同时将容器对外提供服务。详细步骤包括启动和配置MySQL、PHP和Nginx容器,以及解决本地访问速度慢的问题。
摘要由CSDN通过智能技术生成

官方文档:Docker、PHP

环境:mac、nginx-1.14、php-5.6、php-7.2、mysql-5.7

目标:实现本地服务Docker化,nginx、php、mysql容器互联、docker容器对外开放

前期准备:Docker安装、Mac上启动docker

获取镜像

#获取nginx

docker pull nginx:1.14

#获取php

docker pull php:5.6-fpm

docker pull php:7.2-fpm

#获取mysql

docker pull mysql:5.7

启动mysql部分

#需要新建本地目录,启动后本地可以查看命令 `docker ps`

docker run --name mysql \ #启动docker名称为mysql

-p 33060:3306 \ #映射本地端口33061到容器的端口3306

-e MYSQL_ROOT_PASSWORD=root \ #root用户密码为root

-v /local/docker/mysql/mysql5.7/data:/var/lib/mysql \ #挂在本地目录到容器的mysql数据目录

-v /local/docker/mysql/mysql5.7/conf:/etc/mysql \ #挂在本地目录到容器的mysql配置目录

-d mysql:5.7 #使用镜像

#配置mysql

cd /local/docker/mysql/mysql5.7/conf

# 创建my.cnf 并配置参数并保存

vi my.cnf

# 重启MySQL

docker restart mysql

启动PHP部分

#参数部分参考mysql

docker run \

--name php7.2 \

--link mysql:mysql \ #这里需要提醒下,在php容器中使用mysql表示连接到mysql容器

-v /local/www:/data/www \

-v /local/docker/php/php7.2/conf:/usr/local/etc/php \

-v /local/docker/php/php7.2/logs:/phplogs \

-d php:7.2-fpm

# 配置php.ini

/local/docker/php/php7.2/conf

vi php.ini

# 重启php7.2

docker restart php7.2

#php5.6部分

docker run \

--name php5.6 \

--link mysql:mysql \ #这里需要提醒下,在php容器中使用mysql表示连接到mysql容器

-v /local/www:/data/www \

-v /local/docker/php/php5.6/conf:/usr/local/etc/php \

-v /local/docker/php/php5.6/logs:/phplogs \

-d php:5.6-fpm

# 配置php.ini

/local/docker/php/php5.6/conf

vi php.ini

# 重启php5.6

docker restart php5.6

#php安装扩展 可以参考官方(docker文档)[https://hub.docker.com/_/php/]有多个安装方法

# 进人容器php7.2

docker exec -it php7.2 /bin/bash

# 查看扩展

php -m

# 官方扩展

docker-php-ext-install php_mysql

启动nginx部分

#映射配置文件目录为本地、本地的配置文件需要手动拷贝一份不然启动不了、映射/data/www为本地的项目目录这个配置的时候需要注意

docker run -p 80:80 \

--name nginx \

--link php7.2:php7.2 \

--link php5.6:php5.6 \

-v /local/docker/nginx/nginx1.14/logs:/var/log/nginx \

-v /local/docker/nginx/nginx1.14/etc:/etc/nginx:ro \

-v /local/www:/data/www \

-d nginx:1.14

#配置nginx配置文件(一个简单的laravel配置)

cd /local/docker/nginx/nginx1.14/etc

vi conf.d/default.conf

#配置default文件

server

{

listen 80;

server_name laravel.test.com;

index index.html index.htm index.php;

root /data/www/laravel/public;

#支持PHP的Fast-CGI 模式

location ~ .*\.(php|php5)?$

{

include fastcgi.conf;

fastcgi_split_path_info ^(.+\.php)(.*)$;

fastcgi_param SCRIPT_FILENAME /data/www/laravel/public/$fastcgi_script_name;

fastcgi_pass php7.2:9000;

#fastcgi_pass php5.6:9000;

fastcgi_index index.php;

}

location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$

{

access_log off;

}

}

# 重启nginx

docker restart nginx

相关问题

本地访问过慢,原因是由于docker挂载导致,解决方案(docker中使用 :cached)

#例如nginx挂载目录

docker run -p 80:80 \

--name nginx \

--link php7.2:php7.2 \

--link php5.6:php5.6 \

-v /local/docker/nginx/nginx1.14/logs:/var/log/nginx:cached \

-v /local/docker/nginx/nginx1.14/etc:/etc/nginx:ro \

-v /local/www:/data/www \

-d nginx:1.14

本地相关地址:

nginx: http://localhost

mysql: 127.0.0.1:33060

项目:http://laravel.test.php 需要配置host

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值