Docker开发环境
推荐使用Docker方式搭建开发环境,项目负责人需在项目根目录下配置docker-composer.yml
搭建Docker环境
- 安装Docker环境
- MAC
- 官网:
https://www.docker.com/docker-mac - 链接:
https://pan.baidu.com/s/1vM819JjWaXT2e8btT4qq6Q 密码: ayz3
- 官网:
- WINDOWS
- 官网:
https://www.docker.com/docker-windows - 链接:
链接: https://pan.baidu.com/s/1WajtmjcdjS-0E3HPEEzpjg 密码: 8cd3
- 官网:
- MAC
- 添加PHP开发环境镜像
目前已经到镜像传到Docker Hub上了,所以此步骤不需要了。 - 启动Nginx-Proxy代理
- 创建本地开发环境docker Network
$ docker network create nginx-proxy - 启动Nginx-Proxy镜像,该镜像将监控上一步创建的nginx-proxy network内的所有新VIRTUHOST添加,并自动增加反向代理
$ docker run -d -p 80:80 --name nginx-proxy --net nginx-proxy --restart always -v /var/run/ docker.sock:/tmp/docker.sock jwilder/nginx-proxy
- 创建本地开发环境docker Network
启动项目服务
$ git clone {项目git地址} {本地项目目录} # 拷贝代码仓库到本地目录
$ cd {本地项目目录} # 进入本地目录
$ docker-compose up --force-recreate --remove-orphans -d
$ docker ps # 查看执行的容器
$ docker exec -it {container_name} sh # 登入进容器
配置本地解析
给项目相关域名配置本地host 127.0.0.1 {host}
附加说明
如果本地已经有搭建了Web服务器,上述启动Nginx-Proxy会有80端口冲突问题,可修改端口映射规则,命令如下
$ docker run -d -p 20001:80 --name nginx-proxy --net nginx-proxy --restart always -v /var/run/ docker.sock:/tmp/docker.sock jwilder/nginx-proxy
另外需在Web服务配置代理转发,以下为Nginx的配置模板
server {
listen 80;
server_name {host};
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:20001;
}
}
docker相关命令
* 一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:
build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
- 常用docker命令
创建容器: docker-compose up --force-recreate --remove-orphans 前台启动(-d 后台启动)
进入容器: docker exec -it ${appName}.dev sh
开启容器: docker-compose start
停止容器: docker-compose stop
删除容器: docker-compose down