Docker安装配置 Nginx+PHP+MySQL

基于-阿里云服务器-ubuntu环境

安装Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

安装镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

//添加阿里云官方docker源

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://x7e3y83k.mirror.aliyuncs.com"]
}


//php5的statble版本
docker pull php:5-fpm

//php7的某个版本
docker pull php:7-fpm

//mysql5.x稳定版
docker pull mysql:5.7

//nginx1.7iz
docker pull nginx:stable

配置文件

配置文件目录

1
2
3
4
5
6
/srv/
├── bak #备份
└── conf #配置文件
├── mysql
├── nginx
└── php5

数据目录

1
2
3
4
5
6
/data/
├── logs #日志
│   ├── mysql
│   └── nginx
└── mysql
└── data

预先拷贝my.cnf至/srv/conf/mysql/
预先拷贝php.ini www.con /srv/conf/php5/

PHP+MySQL+Nginx安装

mysql部分

本地3306绑定端口

1
2
3
4
docker run -d -e MYSQL_ROOT_PASSWORD=密码 --name mysql \
-v /srv/conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
-v /data/logs/mysql:/logs -p 3306:3306 mysql:5.7

php部分

1
2
3
4
docker run -d -p 9000:9000 --name php5 -v /www:/www \
-v /srv/conf/php5/php.ini:/usr/local/etc/php/php.ini \
-v /srv/conf/php5/www.conf:/usr/local/etc/php-fpm.d/www.conf \
-v /tmp:/tmp --link mysql:mysql php:5-fpm

nginx部分

1
2
3
4
docker run -d -p 80:80 -p 443:443 --name nginx -v /srv/conf/nginx/conf.d:/etc/nginx/conf.d \
-v /srv/conf/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /srv/conf/nginx/cert:/etc/ssl/certs --link php5:php5 \
-v /www:/www -v /data/logs/nginx:/var/log/nginx nginx:stable

mysql-web管理工具

1
docker run --link mysql:db -p 8080:8080 --name adminer adminer

PHP5配置

扩展配置

默认php5的zlib版本较高,所以需要安装其他版本

1
2
3
4
5
6
7
8
9
10
11
12
#安装低版本
apt-get install zlib1g=1:1.2.8.dfsg-2+b1
apt-get install libfreetype6-dev \
libjpeg62-turbo-dev libpng-dev libxml2=2.9.1+dfsg1-5+deb8u6 \
libxml2-dev

docker-php-ext-install pdo_mysql mbstring \
mysql mysqli simplexml zip gd

#php5只能安装xdebug5.5、redis4.3
pecl install https://pecl.php.net/get/redis-4.3.0.tgz
pecl install http://pecl.php.net/get/xdebug-2.5.5.tgz