系统
Mac 10.12.3
安装 Docker,在此不再赘述。
docker 版本
qiuqiuyuandeMacBook-Pro:web qiuqiuyuan$ docker --version
Docker version 17.06.0-ce, build 02c1d87
qiuqiuyuandeMacBook-Pro:web qiuqiuyuan$
安装docker-compose,PS:Mac下安装docker时默认已安装
1、PIP 安装:
sudo pip install -U docker-compose
安装成功后,可以查看 docker-compose 命令的用法。
2、二进制包
发布的二进制包可以在 https://github.com/docker/compose/releases 找到。
下载后直接放到执行路径即可。
例如,在常见的 Linux 平台上。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod a+x /usr/local/bin/docker-compose
docker-compose.yml配置
phpfpm:
image: php:edgephp
volumes:
- /Users/qiuqiuyuan/Desktop/web/www:/var/www/html
ports:
- "9000:9000"
container_name: 'phpfpm'
php5:
image: php5
volumes:
- /Users/qiuqiuyuan/Desktop/web/www:/var/www/html
ports:
- "9001:9000"
container_name: 'php5'
mysql:
image: edgeto/mysql
volumes:
- /Users/qiuqiuyuan/Desktop/web/dataDir:/var/lib/mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: '123456'
container_name: 'mysql'
nginx:
image: nginx
volumes:
- /Users/qiuqiuyuan/Desktop/web/www:/usr/share/nginx/html
- /Users/qiuqiuyuan/Desktop/web/nginx/conf.d:/etc/nginx/conf.d
ports:
- "80:80"
- "90:90"
container_name: 'nginx'
links:
- phpfpm
- php5
docker-compose up -d 后台启动
Creating phpfpm ...
Creating phpfpm ... done
Creating nginx ...
Creating nginx ... done
启动成功
nginx配置
server {
listen 80;
server_name www.test.ngx;
#charset koi8-r;
#access_log logs/host.access.log main;
root /usr/share/nginx/html/test;
index index.php index.html index.htm;
location / {
#try_files $uri $uri/ /index.php?$query_string;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/test/$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
多个php版本,php5和php7
qiuqiuyuandeMacBook-Pro:~ qiuqiuyuan$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4da479f3c78c nginx "nginx -g 'daemon ..." 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:90->90/tcp nginx
6002ed6bf2d3 php5 "docker-php-entryp..." 3 minutes ago Up 3 minutes 0.0.0.0:9001->9000/tcp php5
ee786cf90b7a php:edgephp "docker-php-entryp..." 3 minutes ago Up 3 minutes 0.0.0.0:9000->9000/tcp phpfpm
docker-compose.yml配置
phpfpm:
image: php:edgephp
volumes:
- /Users/qiuqiuyuan/Desktop/web/www:/var/www/html
ports:
- "9000:9000"
container_name: 'phpfpm'
php5:
image: php5
volumes:
- /Users/qiuqiuyuan/Desktop/web/www:/var/www/html
ports:
- "9001:9000"
container_name: 'php5'
nginx:
image: nginx
volumes:
- //Users/qiuqiuyuan/Desktop/web/www:/usr/share/nginx/html
- /Users/qiuqiuyuan/Desktop/web/nginx/conf.d:/etc/nginx/conf.d
ports:
- "80:80"
- "90:90"
container_name: 'nginx'
links:
- phpfpm
- php5