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 nginx实现一个主机部署多个站点

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

为 docker 中的 nginx 配置 https

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

Docker容器应用日志查看

Nginx/Tengine服务器安装SSL证书

关于Docker目录挂载的总结

docker之进入启动容器查看目录结构

使用nginx实现一个主机部署多域名指向不同docker项目的更多相关文章

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

    原文:docker nginx实现一个主机部署多个站点 在某站租赁的虚拟机快到期了,续费得花200多,想到在阿里云新买的服务器,不如把这个也转移过去.域名我就用真实的吧,大家别黑我网站就好了,谢谢各位 ...

  2. IIS 实现一个主机部署多个网站 共享80端口

    如果一个主机只是建立一个80端口的网站就有点浪费了,通过本文你就可以实现,在一个主机上建立多个80端口的站点,并通过不同的域名进行访问. 打开iis软件:控制面板-->管理工具-->Int ...

  3. Linux使用nginx反向代理。可实现域名指向特定端口

    在配置80指向域名的时候出现端口占用,使用kill -9无法杀死端口,应使用下面的命令来杀死进程killall -9 nginx(使用完本命令需要再把配置过的配置文件重新启动.命令写在了PS下面)后在 ...

  4. nginx反向代理:两个域名指向不同web服务端口

    一台服务器上安装了zabbix服务和jumpserver服务,两个域名zabbix.xxxx.xxxx和jumserver.xxx.xxxx 一.编辑/etc/nginx/conf.d目录下nginx ...

  5. Nginx多虚拟主机下泛域名配置

    http://www.tuicool.com/articles/F3Azuq 近上一个应用,让用户可以自定义二级域名,所以要配置一个泛域名来解析用户的自定义域名.  首先来说说nginx下的泛域名配置 ...

  6. nginx代理一个服务器上所有域名

    1. 主配置文件不需要更改任何配置2. 在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件两个文件内容分别为 #() servername server ...

  7. nginx二级域名指向不同文件项目配置

    需要使用泛域名解析, 并且加上空的判断,以保证没有二级域名的也可以访问 核心配置 server_name ~^(?<subdomain>.+)\.caipudq\.cn$;if ( $su ...

  8. centos下Nginx安装和配置多个域名的虚拟主机

    nginx安装步骤,源码编译安装(源码编译,可以自定制更多功能) openssl #user nobody; worker_processes ; #error_log logs/error.log; ...

  9. 在Mac上搭建带ssl协议和域名指向的Apache服务器

    顾名思义,就是要在苹果电脑上搭建 Apache 服务器,并且支持 https 协议,能用指定域名访问(有些开发调试需要注册域名,比如调试微信JS-SDK),当然最好能在手机端进行调试.首先,Mac 系 ...

随机推荐

  1. SQL设置时间格式

    SELECT STR_TO_DATE('Jul 20 2013 7:49:14:610AM','%b %d %Y %h:%i:%s:%f%p') from DUAL; -- 执行后得到结果:'2013 ...

  2. git教程:删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...

  3. Python学习之路基础篇--11-12Python基础,函数的装饰器

    对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...

  4. Pymongo使用事项

    基本上的教程都有,就不阐述了,这里主要记录使用时遇到的问题 1. 再使用有权限的mongodb连接时,需要user指定role所在的集合,如图: 在pymongo创建MongoClient 除了增加u ...

  5. Oracle数据导入Hbase操作步骤

    ——本文非本人原创,为公司同事整理,发布至此以便查阅 一.入库前数据准备 1.入hbase详细要求及rowkey生成规则,参考文档“_入HBase库要求 20190104.docx”. 2.根据标准库 ...

  6. UVa 712

    这个题根本不用建树,因为是完全二叉树,可以把这个想成二进制.对于根是二进制数的首位,之后依次类推.到最后的叶子节点就是从0到pow(2,n)-1. 关键在于在第一次输入的不是按照x1,x2,x3,x4 ...

  7. NS3可视化及动画工具(PyViz和NetAnim)

    一.PyViz安装 1.安装依赖包 sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas p ...

  8. HTML下标签之应用

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  9. 2018.9.12 B树总结

    1. B-Tree B-树是一种平衡的多路查找树,它在文件系统中很有用. 1.1 B-Tree 特性 关键字集合分布在整颗树中: 任何一个关键字出现且只出现在一个结点中: 搜索有可能在非叶子结点结束: ...

  10. Javascrip基础

    术语解释 Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速 ...