什么是编排呢?编排指的是同时管理多个容器的行为。
docker-compose 是docker开源的单机容器编排工具,其前身是Orchard团队开源的Fig,目前已被Docker收购,并成为官方支持的解决方案。
描述 | 命令 |
---|---|
启动docker-compose | docker-compose up -d |
重启docker-compose | docker-compose restart |
停止docker-compose | docker-compose stop |
查看容器 | docker-compose ps |
docker-compose默认指定的文件为docker-compose.yml
#docker-compose版本为3
version: '3'
#有3个服务php、nginx、redis
services:
php:
#build可以编一个Dockerfile文件,image是使用别人的镜像
#build: .
image: "bitnami/php-fpm"
container_name: php-dev
restart: always
networks:
- dev-network
#存储卷,本地文件路径:容器中文件路径
#代码和php-fpm环境运行在一个容器中
volumes:
#自己需要修改,rbcore为代码目录
- /home/qinyongbo/volume/php-config:/usr/local/php7/etc/
- /home/qinyongbo/rbcore:/rbcore
# command:
# - /usr/local/php7/sbin/php-fpm
environment:
HOSTNAME: docker-01
PROD_ENV: dev
nginx:
container_name: nginx-dev
restart: always
image: "nginx"
networks:
- dev-network
#开放本地端口18080:容器中端口80
ports:
- "18080:80"
- "18081:81"
volumes:
- /home/qinyongbo/volume/nginx-config:/etc/nginx
depends_on:
- php
redis:
container_name: redis-dev
restart: always
image: "redis"
networks:
- dev-network
networks:
dev-network:
external: false
/home/qinyongbo/volume/nginx-config为nginx的配置文件目录,修改default.conf配置文件
server {
listen 80;
server_name localhost;
#需要修改路径
root /rbcore/generic;
location / {
index index.html index.htm index.php;
if (-f $request_filename) {
break;
}
if ($request_filename ~* "\.(js|ico|gif|jpe?g|bmp|png|css)$") {
break;
}
if (!-e $request_filename) {
rewrite ^/(.*) /index.php/$1 last;
}
}
location ~ \.php($|/) {
fastcgi_index index.php;
fastcgi_pass php:9000;
include fastcgi_params;
proxy_ignore_client_abort on;
add_header Access-Control-Allow-Credentials true;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
}
请求执行路径:本机18080端口-》容器80端口-》进入nginx中,通过php:9000找到对应的php容器-》通过php-fpm执行代码。
测试环境是否正常
curl http://127.0.0.1:18080/index.php
网友评论