您的位置:首页 > 运维架构 > Docker

使用nginx实现一个主机部署多域名指向不同docker项目

2019-01-24 19:14 1416 查看

 1,安装 docker

yum install docker

使用Docker 中国加速器

vim  /etc/docker/daemon.json

添加下面代码 

{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}

(这个文件 初始状态是空的 只有“{}”)

启动服务

systemctl start docker

systemctl restart docker --重启
systemctl stop docker    --停止

查看版本

docker version

查看状态

service docker status 

2,安装nginx

yum install nginx

启动服务

systemctl start nginx

systemctl restart nginx --重启
systemctl stop nginx    --停止

啥也不显示表示正常启动,如显示

表示启动出错,看这里解决 https://blog.csdn.net/a1007720052/article/details/82255226

输入http://服务器IP/ 如果能看到nginx的界面,就表示安装成功了

3,从docker hub 中拉取 项目 docker image

 先登录

docker login

输入在 docker hub的账号密码进行登录

登录成功后,执行下面命令拉取

 docker pull [image 名称]

4,启动 docker运行镜像服务

查看镜像文件

运行镜像到容器中: 

docker run -p 127.0.0.1:9000:8080 -t docker.io/ejiyuan/demo-docker

这里我不想将9000端口暴露给外网(所有请求都从nginx,映射过来,也就是仅对往外开放80端口)所有限定ip:127.0.0.1,如果你既想实现通过指定域名访问,又想通过外部 “ip+端口” 访问,这里去掉127.0.0.0即可

检查是否正常运行:

方法1,使用curl透一下:

 

 我的默认控制器会返回 hello Docker World

方法2,检查服务运行状态

方法3,使用 docker ps命令查看运行的容器

 

5,配置nginx:

vim /etc/nginx/nginx.conf

修改或添加一个server标签

server {
listen       80 default_server;
listen       [::]:80 default_server;
server_name  _;
root         /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#下面是自定义配置 端口转发
server {
listen 80;
server_name www.abc.com;# 这里配置我们的域名,确定域名已解析到本机
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:9000; #转发到本机9000端口
}
}

 重启nginx:

systemctl restart nginx

在浏览器访问你的域名 www.abc.com

查看 docker项目容器运行日志

 

6,参考文档

docker nginx实现一个主机部署多个站点

在Docker容器环境中用Let's Encrypt部署HTTPS

为 docker 中的 nginx 配置 https

 「Spring Boot」Docker配置SSL证书(免费证书)

Docker容器应用日志查看 

Nginx/Tengine服务器安装SSL证书 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: