[TOC]
> docker能解决测试、开发、正式服务器运营等不同角色保持相同的环境,这样能解决因为环境不同引发的问题。
> 也可以拿来做普通的虚拟机来玩,因为轻量级的,所以很好使用。
## 简易安装
> 1. git pull “docker-nginx” from gitee.com ,windows下将“docker-nginx配置环境”放在c:/users/xx下
> 2. 安装PHP
```
docker run --name myphp -d \
-v /c/Users/husilu/docker-nginx/www/default:/var/www/html \
-v /c/Users/husilu/docker-nginx/php/php.ini:/usr/local/etc/php/php.ini:ro \
wangking717/myphp:0.1
```
> 3. 安装NGINX
```
docker run --name mynginx \
-d -p 81:81 \
-v /c/Users/husilu/docker-nginx/www/default:/usr/share/nginx/html \
-v /c/Users/husilu/docker-nginx/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /c/Users/husilu/docker-nginx/nginx/conf.d:/etc/nginx/conf.d \
-v /c/Users/husilu/docker-nginx/logs:/var/log/nginx \
--link myphp:php \
nginx:1.14.0
```
## 简易安装的实现过程
### 1. 创建本地目录
|-- logs
|-- nginx
| | | -- conf.d
| | | | | -- default.conf
| | | -- nginx.conf
|-- php
| | | -- php.ini
| -- www
| | | | -- default
### 2. Php
```
docker run --name myphp -d php:7.2-fpm
docker cp myphp:/usr/local/etc/php/php.ini-production . 转移到 /docker/php/php.ini
docker stop myphp && docker rm myphp
docker run --name myphp -d \
-v /c/Users/husilu/docker-nginx/www/default:/var/www/html \
-v /c/Users/husilu/docker-nginx/php/php.ini:/usr/local/etc/php/php.ini:ro \
php:7.2-fpm
```
### 3. 为PHP容器增加扩展
> 1)登录进入php容器
```
docker exec -it myphp /bin/bash
```
> 2)安装php扩展
```
apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install mysqli \
&& rm -r /var/lib/apt/lists/*
```
> 3)exit退出容器
```
exit 或 Ctrl + C
```
> 4)提交容器的修改
```
docker commit myphp myphp:0.1
```
> 5)注册一个https://hub.docker.com,用户名为wangking717,创建一个repo为myphp
> 6)docker命令符里输入“docker login”,输入用户名和密码
> 7)打标签(必须是wangking717/开头的才可以)
```
docker tag myphp:0.1 wangking717/myphp:0.1
```
> 8)上传
```
docker push wangking717/myphp:0.1
```
### 4. Nginx
```
docker run --name mynginx \
-d -p 81:81 \
-v /c/Users/husilu/docker-nginx/www/default:/usr/share/nginx/html \
-v /c/Users/husilu/docker-nginx/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /c/Users/husilu/docker-nginx/nginx/conf.d:/etc/nginx/conf.d \
-v /c/Users/husilu/docker-nginx/logs:/var/log/nginx \
--link myphp:php \
nginx:1.14.0
```
## 参考资料
> https://www.awaimai.com/2120.html