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