把nginx交给docker管理
- 前景:本地测试或者问题跟踪时,靠单个接口调用无法迅速定位到问题,而使用nginx将请求转发到本地,使用测试环境的前端和本地的后端,就可以根据完整的操作流程来复现问题。nginx的安装配置本来是非常简单的一件事。但是换了Mac之后,网上的教程都是用brew去安装,而由于我们网络的特殊性质,brew也不是那么便捷,经常失败。于是就想到了使用docker去管理。
- 准备:docker, nginx.conf。
- 从仓库拉取一个nginx 镜像,默认拉取最新的版本
- docker pull nginx
- 将nginx 先启动起来
- docker run -d --name mynginx nginx
- 进入到容器中
- docker exec -it mynginx bash
- 将nginx 默认配置文件复制出来 e98d7d759ad0 为容器id,后面的是配置文件位置
- docker cp e98d7d759ad0:/etc/nginx /Users/xxx/Documents/docker/nginx/conf
- docker cp e98d7d759ad0:/usr/share/nginx/html /Users/xxx/Documents/docker/nginx/html
- docker cp e98d7d759ad0:/var/log/nginx /Users/xxx/Documents/docker/nginx/log
- docker cp e98d7d759ad0:/etc/nginx/conf.d /Users/xxx/Documents/docker/nginx/conf.d
- 将自己的nginx.conf 替换到/Users/xxx/Documents/docker/nginx/conf
- 杀掉并且删除mynginx
- docker stop mynginx
- docker rm mynginx
- 启动容器
- docker run -d -p 127.0.0.1:8080:80 --name mynginx -v /Users/xxx/Documents/docker/nginx/html:/usr/share/nginx/html -v /Users/xxx/Documents/docker/nginx/conf:/etc/nginx -v /Users/xxx/Documents/docker/nginx/log:/var/log/nginx -v /Users/xxx/Documents/docker/nginx/conf.d:/etc/nginx/conf.d nginx
- 在浏览器中输入 localhost 即可跳转