部署多个docker有两种方式,一种是让容器映射端口到宿主机,然后可以直接从外部访问到该端口,一种是利用nginx做转发,容器端口不对外暴露。

端口映射方式

image.png

这种是容器在建立的时候,使用-p参数来将容器的端口绑定到宿主机的端口上面,直接输入宿主机ip+端口可以直接访问服务。如果觉得麻烦,也可以使用nginx来做转发,根据不同的域名来转发到不同的端口上面。下面是nginx文件

server {

listen 80 ;

server_name www.iotxing.com;

location / {

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:8000;

}

}

所有访问www.iotxing.com的请求都会被转发到http://127.0.0.1:8000上面,然后由占用8000端口的docker容器里面的nginx进行处理。

这种方式存在的一个劣势是访问的地址都会带一个8000的端口号,类似于www.iotxing.com:8000/postxx这种,会显得很难看

ip转发

docker有一套自己的网络管理,每个docker容器都会有一个docker虚拟出来的网卡,然后会被分配一个内部ip,这个内部网络里面只有宿主机和容器之间才能访问,外界是无法访问到的。

由于宿主机可以根据这个ip访问到容器,自然也可以将服务转发到该ip上面,而且还是80端口,不用另开端口

image.png

这样就能够解决使用端口转发所带来的端口后缀的问题,下面是我的nginx配置文件

server {

listen 80 ;

server_name www.iotxing.com;

location / {

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://xx.xx.xx.2;

}

}

server{

listen 80;

server_name xx.xx;

location /{

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://xx.xx.xx.4;

跟上面的区别就是proxy_pass里面的内容

一台服务器能支持多少docker,一台物理机器部署多个docker相关推荐

  1. 到底一台服务器能够支持多少TCP并发连接?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 朱小厮 来源 | 公众号「朱小厮的博客」 曾几 ...

  2. 【一台服务器备份mysql到另外一台服务器】

    一.配置服务器 ssh 从一台服务器同步文件到另一台服务器,需要使两台服务器之间建立 ssh 连接 ssh-keygen -t rsa 运行这句,这里的这个命令是两条服务器都需要执行的,不然没有/ro ...

  3. 一台服务器两个mysql_在一台服务器上安装两个或多个mysql的实现步骤_MySQL

    如何在一台服务器上安装两个或者更多个的mysql呢?下面是详细的操作步骤,一起来学习学习吧. 一.环境 mysql软件包: mysql-5.6.31.tar mysql-5.5.32.tar 操作系统 ...

  4. linux从一台服务器传输文件到另一台服务器上

    首先两台服务器必须是可以ping通的 例: ping 10.22.137.10 ping通之后: 1.复制文件 格式: scp 目录/文件名.文件格式 目标服务器用户名@ip地址:目标服务器目录 例: ...

  5. 【开发技术】2万字详细介绍Docker 和 web项目的部署监控,docker部署,拉取kafana,prometheus镜像监控

    SpringBoot 内容管理 Linux Redis Connnect 设置服务器redis开机自启动 修改Redis配置文件 关闭防火墙 关闭selinux 连接Redis Docker Dock ...

  6. 物理服务器怎么装linux,新手如何在物理机上部署红帽linux系统

    合理进行windows分区规划 对于新手来说,一台机器上部署windows和linux两种操作系统,到底应该如何操作才能达到最佳的体验应用?对于linux系统来说,红帽企业级Linux系统版本应该是大 ...

  7. linux批量安装系统uefi,PXE批量部署Linux之四:一台服务器同时支持BIOS和UEFI

    dnsmasq选(bu)项(hui)简(pei)单(zhi),这里换高级的DHCP,同时搭建tftp服务器 因为uefi和bios平台用到的vesamenu.c32文件不同,我们重新规划tftp目录如 ...

  8. 两台服务器虚拟成一个ip,两台相同服务器ip怎么配置

    两台相同服务器ip怎么配置 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 排查 ...

  9. 从物理服务器拷贝文件到容器,docker容器与物理机的文件传输—docker cp命令

    ocker cp :用于容器与主机之间的数据拷贝. 语法 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] ...

最新文章

  1. JS中8个常见的陷阱
  2. 【PAT (Advanced Level) Practice】1149 Dangerous Goods Packaging (25 分)
  3. 如何查看计算机里家庭组有几个,win7网络文件夹-win7家庭组共享的文件在哪儿查?win7 – 手机爱问...
  4. client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法
  5. mysql主从日志的定期清理
  6. NOIP2017洛谷P3953:逛公园(分层图最短路、dp、拓扑)
  7. mysql 虚拟表 分页_MySql大表分页(附独门秘技)
  8. JD-GUI(反编译工具)
  9. 两篇文章的相似度比较
  10. 基于java的enigma的加密程序
  11. hive查看表中列的信息命令_Linux查看硬件信息之dmidecode命令详解
  12. Windows的权限(用户、组和访问控制)
  13. php公益培训第2部,PHP高手之路-传世经典第二部直播课表
  14. 论文阅读:Ultra Wide View Based Panoramic VR Streaming
  15. 如何解决业务系统中的热点问题
  16. java课程设计 考试系统,java课程设计考试系统.
  17. android删除通知栏图标,Android开发系列---UI篇---添加和消除通知栏图标
  18. 大小写字母转换 (15分)
  19. 区块链入门教程(10)--开发简单银行合约
  20. Vue通过render渲染$Notice

热门文章

  1. AFL--模糊测试使用浅析
  2. Ubuntu20.04.3 + opengrok1.7.25 + tomcat10.0.14安装
  3. 全球人工智能(AI)在药物发现中的应用市场--行业趋势和2029年预测
  4. python2 python3 通信_基于Python的串口通信(2)
  5. C++ | 动态分配内存 new和malloc的区别
  6. 常用-30V/-100V/-150V p沟道mos管选型参数,p沟道mos选型!
  7. 环信即时通讯技术实践
  8. c语言pow函数的作用,c语言中pow函数的用法是什么?_后端开发
  9. 浅谈物理隔离与双网切换
  10. MySQL删除列,添加列的sql语句