使用Dockerfile+Compose搭建dnmp开发环境

本文是对Windows10系统下使用Dockerfile+Compose搭建dnmp开发环境的步骤做一次记录,顺便对搭建过程中遇到的问题进行相应的说明。

说明

  1. Dockerfile: 一个用来构建镜像的文本文件
  2. Compose: 用于定义和运行多容器 Docker 应用程序的工具

搭建环境

目录结构

1
2
3
4
5
dnmp[脚本项目名称目录]
|-- Dockerfile [存放Dockerfile文件的目录]
|-- Dockerfile-php [php镜像的Dockerfile文件]
...
|-- docker-compose.yml [compose文件]

注:如果PHP、MySQL、NGINX的相应数据需要存在本地,那么其目录,根据实际情况创建。并在docker-compose.yml文件中的 volumes 配置项中体现。

脚本内容

  1. Dockerfile-php
1
2
FROM php:7.2-fpm
RUN /usr/local/bin/docker-php-ext-install pdo pdo_mysql
  1. docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# lnmp 配置
version: '3'
services:
php:
build:
context: ./Dockerfile
dockerfile: Dockerfile-php
container_name: "php-fpm7.2"
expose:
- "9000"
volumes:
- "D:\\dnmp\\www:/www"
nginx:
image: "nginx:latest"
container_name: "nginx"
ports:
- "80:80"
volumes:
- "D:\\dnmp\\www:/usr/share/nginx/html"
- "D:\\dnmp\\nginx\\conf\\conf.d:/etc/nginx/conf.d"
mysql:
image: "mysql:5.7"
container_name: "mysql5.7"
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3306:3306"
volumes:
- "D:\\dnmp\\mysql:/var/lib/mysql"

运行脚本

在脚本目录中运行命令: docker-compose up
后台执行该服务可以加上 -d 参数: docker-compose up -d

Docker-compose命令

命令 作用
docker-compose up -d 后台创建并运行容器
docker-compose start 开始服务
docker-compose stop 停止服务
docker-compose restart 重启服务
docker-compose pause nginx 暂停nginx容器
docker-compose unpause nginx 恢复nginx容器
0%