使用docker创建容器后,我们一般需要做端口映射,docker中-p就是端口映射的参数配置,例如:-p 60002:80,意思就是将宿主机的60002端口映射到容器中的80端口,然后使用:ip:60002,就可以访问到容器中的web服务了,如果我们想绑定域名,这里就涉及到一个问题,域名解析设置只能做到域名-ip的级别,并不能做到域名-ip:port的映射,好在我们可以使用Nginx反向代理将不同的域名转发到不同的web系统,具体实现方法如下:
假设:
1.AItest.top -> 144.48.63.114:60002
首先创建一个nginx容器:
docker pull nginx:1.10.3 docker run -d -p 80:80 --name dk_nginx nginx:1.10.3 docker exec -ti dk_nginx /bin/bash
进入容器后修改nginx配置文件,进入:/etc/nginx/conf.d,创建一个:1.aitest.top.conf 配置文件,添加如下配置信息:
server { listen 80; server_name 1.aitest.top; location / { proxy_pass http://144.48.63.114:60002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
保存后,执行 service nginx reload 使配置生效!
紧接着做域名解析,将 1.aitest.top 解析到 144.48.63.114 即可,待域名解析生效后,我们就可以到浏览器中输入网址查看效果没错的话应该是可以了!