1. 安装php
拉取官方镜像
1 | docker pull php:7.2-fpm |
2. 安装nginx
拉取官方镜像
1 | docker pull nginx:1.17.1 |
3. 部署nginx+php
启动php:
1 | docker run --name myphp-fpm -v ~/nginx/www:/usr/share/nginx/html -d php:7.2-fpm |
说明:
- –name myphp-fpm : 将容器命名为 myphp-fpm。
- -v ~/nginx/www:/usr/share/nginx/html : 将主机中项目的目录 www 挂载到容器的 /usr/share/nginx/html
创建 ~/nginx/conf/conf.d 目录:
1 | mkdir ~/nginx/conf/conf.d |
在该目录下添加 ~/nginx/conf/conf.d/xxxxx.conf 文件,内容如下:
1 | server { |
配置文件说明:
- php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
- /usr/share/nginx/html/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。
启动nginx:
1 | docker run --name php-nginx -p 80:80 -d \ |
- -p 80:80: 端口映射,把 nginx 中的 80 映射到本地的 80 端口。
- ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
- ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
- –link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
接下来就可以在~/nginx/www目录下创建php项目来访问
4. 安装MySQL
拉取官方镜像:
1 | docker pull mysql:8.0.16 |
创建MySQL相关目录:
1 | mkdir -p ~/mysql/data ~/mysql/log ~/mysql/conf |
创建~/mysql/conf/my.cnf配置文件
1 | # Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. |
创建mysql8容器:
1 | docker run \ |
相关命令:
进入镜像:
1
docker run -it mysql:8.0.16 /bin/bash
进入容器:
1
docker exec -it mysql8 /bin/sh