在docker中用nginx配置反向代理

3,975 阅读1分钟

  1.基础要求

       系统:MacOS

       环境:已下载好nginx镜像

2.先启动普通nginx

docker run -d -p 80:80 --name nginx  nginx

3.创建目录(用于copy配置文件)

mkdir -p  docker/nginx/conf.d

4.copy容器中的配置文件到宿主(下面是两个cp命令)

docker cp nginx:/etc/nginx/conf.d/default.conf /Users/wangtao/docker/nginx/conf.d/default.conf

docker cp nginx:/etc/nginx/nginx.conf /Users/wangtao/docker/nginx/nginx.conf

如果正常应该能看到


5. 编辑配置文件

vi /Users/wangtao/docker/nginx/nginx.conf


ps:我这里是访问http://192.168.16.67:80,其实加载的是http://192.168.16.67:8001/下面的网页,遇到 /api/ 是代理到 http://192.168.16.67:8000/的接口,特别要注意,这里我是本地测试但是不能用localhost,要用192.168.16.67,docker容器隔离导致

6.删除原nginx,创建一个新的,主要是关联本机的配置目录

   删除 

  docker rm -f nginx

  创建

docker run -d -p 80:80 --name nginx -v /Users/wangtao/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /Users/wangtao/docker/nginx/conf.d:/etc/nginx/conf.d -v /Users/wangtao/docker/nginx/logs:/var/log/nginx nginx





7.部分docker命令说明

  • -d: 后台运行容器,并返回容器ID
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • --name: 为容器指定一个名称;
  • -v: 绑定一个卷     格式为:主机(宿主)卷 :容器卷