使用nginx实现一个主机部署多域名指向不同docker项目
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
配置Nginx最新源
vim /etc/yum.repos.d/nginx.repo
添加下列内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
执行安装
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 login 登录到 docker hub
docker push ejiyuan/demo-docker
命令后面的 image tag 必须是 docker hub 用户名 + “/” + 项目名称形式,如果“/”与当前登录的用户名不对应 会提示没有权限
Error response from daemon: pull access denied for io/webapp, repository does not exist or may require 'docker login'
你可以使用下列命令修改镜像tag名称后再进行推送
docker tag io/webapp ejiyuan/webapp
4,从docker hub 中拉取 项目 docker image
在你需要部署的服务上安装docker 先执行 docker login 登录到 docker hub 然后执行下列命令拉取镜像到你的服务器上
docker pull ejiyuan/demo-docker

docker pull [image 名称]
5,启动 docker运行镜像服务
查看镜像文件

运行镜像到容器中:
docker run -p 127.0.0.1:: -t docker.io/ejiyuan/demo-docker
docker之进入启动容器查看目录结构:docker exec -it containerID /bin/bash 或 docker exec -it containerID /bin/sh
这里我不想将9000端口暴露给外网(所有请求都从nginx,映射过来,也就是仅对往外开放80端口)所有限定ip:127.0.0.1,如果你既想实现通过指定域名访问,又想通过外部 “ip+端口” 访问,这里去掉127.0.0.0即可

检查是否正常运行:
方法1,使用curl透一下:

我的默认控制器会返回 hello Docker World
方法2,检查服务运行状态

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

6,配置nginx:
vim /etc/nginx/nginx.conf
修改或添加一个server标签
server {
listen default_server;
listen [::]: 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 /.html;
location = /40x.html {
}
error_page /50x.html;
location = /50x.html {
}
}
#下面是自定义配置 端口转发
server {
listen ;
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端口
}
}
重启nginx:
systemctl restart nginx
在浏览器访问你的域名 www.abc.com

查看 docker项目容器运行日志

7,参考文档
在Docker容器环境中用Let's Encrypt部署HTTPS
「Spring Boot」Docker配置SSL证书(免费证书)
使用nginx实现一个主机部署多域名指向不同docker项目的更多相关文章
- docker nginx实现一个主机部署多个站点
原文:docker nginx实现一个主机部署多个站点 在某站租赁的虚拟机快到期了,续费得花200多,想到在阿里云新买的服务器,不如把这个也转移过去.域名我就用真实的吧,大家别黑我网站就好了,谢谢各位 ...
- IIS 实现一个主机部署多个网站 共享80端口
如果一个主机只是建立一个80端口的网站就有点浪费了,通过本文你就可以实现,在一个主机上建立多个80端口的站点,并通过不同的域名进行访问. 打开iis软件:控制面板-->管理工具-->Int ...
- Linux使用nginx反向代理。可实现域名指向特定端口
在配置80指向域名的时候出现端口占用,使用kill -9无法杀死端口,应使用下面的命令来杀死进程killall -9 nginx(使用完本命令需要再把配置过的配置文件重新启动.命令写在了PS下面)后在 ...
- nginx反向代理:两个域名指向不同web服务端口
一台服务器上安装了zabbix服务和jumpserver服务,两个域名zabbix.xxxx.xxxx和jumserver.xxx.xxxx 一.编辑/etc/nginx/conf.d目录下nginx ...
- Nginx多虚拟主机下泛域名配置
http://www.tuicool.com/articles/F3Azuq 近上一个应用,让用户可以自定义二级域名,所以要配置一个泛域名来解析用户的自定义域名. 首先来说说nginx下的泛域名配置 ...
- nginx代理一个服务器上所有域名
1. 主配置文件不需要更改任何配置2. 在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件两个文件内容分别为 #() servername server ...
- nginx二级域名指向不同文件项目配置
需要使用泛域名解析, 并且加上空的判断,以保证没有二级域名的也可以访问 核心配置 server_name ~^(?<subdomain>.+)\.caipudq\.cn$;if ( $su ...
- centos下Nginx安装和配置多个域名的虚拟主机
nginx安装步骤,源码编译安装(源码编译,可以自定制更多功能) openssl #user nobody; worker_processes ; #error_log logs/error.log; ...
- 在Mac上搭建带ssl协议和域名指向的Apache服务器
顾名思义,就是要在苹果电脑上搭建 Apache 服务器,并且支持 https 协议,能用指定域名访问(有些开发调试需要注册域名,比如调试微信JS-SDK),当然最好能在手机端进行调试.首先,Mac 系 ...
随机推荐
- 常见的CSS
/***** Selector Hacks ******/ /* IE6 and below */ * html #uno { color: red } /* IE7 */ *:first-child ...
- centos7的启动流程
CentOS7的启动流程 uefi或BIOS初始化,开始开机自检 加载mbr到内存 GRUB的阶段 加载内核和inintamfs模块 kernel内核开始初始化,用systemd来代替centos6以 ...
- SQLyog 报错2058 :连接 mysql 8.0.11 解决方法
下载新版的 mysql 8.0.11 安装. 为了方便安装查看,我下载了sqlyog 工具 连接 mysql 配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了. 解决方法:wi ...
- cocos2dx取真正随机数
由于c++的随机数其实是用了一张随机表,所以不是真正意义上的随机,cocos2dx中操作的时候会发现每次 重新获取都会得到同样的值,那么解决办法采用置随机数种子,利用时间函数(时间唯一性),操作如下 ...
- python 测试登录接口只返回response200的问题
但是使用postman测试是有json串的 后来发现postman传参是用的raw格式,raw的格式相当于json 而这里的data其实是form-data格式,需要用json的格式
- JAVA日常之二
一.装箱.拆箱 int i=1; Integer iobj=i;(自动装箱) 简单理解为,将基本数据类型(i)经过装箱变成对象(iobj): Integer iobj; int i= iobj;(自动 ...
- 分别用命令行、NetBeans IDE 8.2实现firstcup 项目部署
准备工作要搞好,对吧!(如下:) firstcup项目代码文件下载链接:click me~ NetBeans IDE 8.2下载链接:点我~(ps:建议下载此版本,再安装过程中,要选择安装GlassF ...
- jmeter插件安装
一.下载插件 访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件.其中JMeterPlugins-Standard和JMeterPlugins-Ex ...
- 前端开发模拟数据------webpack-api-mocker
应用场景: 在实际的项目开发过程中,一般都会进行前后端分离的开发模式,前端通过mock或者其他的插件模拟后台返回数据的功能.在常用的webpack构建工程项目中,通过和webpack-dev-serv ...
- SQL-函数-014
SQL中函数的种类: 聚合函数.数学函数.字符串函数.时间函数.元数据函数 聚合函数: sum():求和函数 select SUM(Admin.age) as Age from Admin max() ...