- 浏览: 3430844 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://my.oschina.net/gudaoxuri/blog/513923
需要使用Docker虚拟化Hadoop/Spark等测试环境,并且要可以对外提供服务,要求是完全分布式的部署(尽量模拟生产环境)。那么我们会遇到几个问题:
Container IP 是动态分配的
Container IP 是内部IP,外部无法访问(如对外提供HDFS服务可能会遇到Client无法访问DataNode,因为DataNode注册的是内部IP)
针对第一个问题有不少的方案,可以指定静态的IP,对第二个问题,我们可以使用--net=host解决,但这会导致对外只有一个IP,集群各个Slave的端口都要修改。至于pipework简单地看了下,好像也解决不了。
所以目前看上去只能使用看上去不是很优雅的方案解决,如下:
Solution
方法很简单:为Docker宿主网卡绑定多个IP,把这些IP分配给不同的容器。
Reference
http://stackoverflow.com/questions/25036895/how-to-expose-docker-containers-ip-and-port-to-outside-docker-host-without-port/25041782#25041782
http://dl528888.blog.51cto.com/2382721/1604167
需要使用Docker虚拟化Hadoop/Spark等测试环境,并且要可以对外提供服务,要求是完全分布式的部署(尽量模拟生产环境)。那么我们会遇到几个问题:
Container IP 是动态分配的
Container IP 是内部IP,外部无法访问(如对外提供HDFS服务可能会遇到Client无法访问DataNode,因为DataNode注册的是内部IP)
针对第一个问题有不少的方案,可以指定静态的IP,对第二个问题,我们可以使用--net=host解决,但这会导致对外只有一个IP,集群各个Slave的端口都要修改。至于pipework简单地看了下,好像也解决不了。
所以目前看上去只能使用看上去不是很优雅的方案解决,如下:
Solution
方法很简单:为Docker宿主网卡绑定多个IP,把这些IP分配给不同的容器。
//这是示例,我是在windows下用Docker toolbox运行的 root@default:~# ifconfig docker0 Link encap:Ethernet HWaddr 02:42:8C:8E:80:F1 inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth0 Link encap:Ethernet HWaddr 08:00:27:24:D1:F5 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe24:d1f5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:222 errors:0 dropped:0 overruns:0 frame:0 TX packets:164 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:32277 (31.5 KiB) TX bytes:28136 (27.4 KiB) eth1 Link encap:Ethernet HWaddr 08:00:27:76:1D:9B inet addr:192.168.99.100 Bcast:192.168.99.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe76:1d9b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:66 errors:0 dropped:0 overruns:0 frame:0 TX packets:64 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9001 (8.7 KiB) TX bytes:10469 (10.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1152 (1.1 KiB) TX bytes:1152 (1.1 KiB) //eth1网卡是可以与外部交互,所以我们添加IP到这个网卡上 //第一步:添加了两个IP root@default:~# ifconfig eth1:0 192.168.99.10 netmask 255.255.255.0 up root@default:~# ifconfig eth1:1 192.168.99.11 netmask 255.255.255.0 up //再次查看,多了两个IP root@default:~# ifconfig ... eth1 Link encap:Ethernet HWaddr 08:00:27:76:1D:9B inet addr:192.168.99.100 Bcast:192.168.99.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe76:1d9b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2258 errors:0 dropped:0 overruns:0 frame:0 TX packets:1685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:207033 (202.1 KiB) TX bytes:209587 (204.6 KiB) eth1:0 Link encap:Ethernet HWaddr 08:00:27:76:1D:9B inet addr:192.168.99.10 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth1:1 Link encap:Ethernet HWaddr 08:00:27:76:1D:9B inet addr:192.168.99.11 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ... //第二步:运行容器,指定IP,这里的示例容器开启的SSH服务,后面拿它测试 root@default:~# docker run -d -p 192.168.99.10:222:22 --name ssh1 gudaoxuri/scala-2.11-env root@default:~# docker run -d -p 192.168.99.11:222:22 --name ssh2 gudaoxuri/scala-2.11-env root@default:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ab024af9c954 gudaoxuri/scala-2.11-env "/usr/sbin/sshd -D" 4 seconds ago Up 3 seconds 192.168.99.11:222->22/tcp ssh2 259351134d16 gudaoxuri/scala-2.11-env "/usr/sbin/sshd -D" 15 seconds ago Up 14 seconds 192.168.99.10:222->22/tcp ssh1 //测试连接,在Docker宿主机上SSH到第一个容器 root@default:~# ssh 192.168.99.10 -p222 The authenticity of host '[192.168.99.10]:222 ([192.168.99.10]:222)' can't be established. RSA key fingerprint is ac:fe:4b:89:f8:51:b7:e9:9c:34:62:f9:80:38:4b:bf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.99.10]:222' (RSA) to the list of known hosts. root@192.168.99.10's password: Last login: Wed Oct 7 13:12:35 2015 from 192.168.99.1 //成功进入 [root@259351134d16 ~]# //在第一个容器中SSH到第二个容器 [root@259351134d16 ~]# ssh 192.168.99.11 -p222 root@192.168.99.11's password: Last login: Wed Oct 7 13:14:53 2015 from 172.17.42.1 //也OK了 [root@ab024af9c954 ~]#
Reference
http://stackoverflow.com/questions/25036895/how-to-expose-docker-containers-ip-and-port-to-outside-docker-host-without-port/25041782#25041782
http://dl528888.blog.51cto.com/2382721/1604167
发表评论
-
应用行为活动监测器 Sysdig Falco
2016-05-19 13:03 1294http://www.oschina.net/p/sysdig ... -
Fedora安装Redis
2016-05-04 08:56 1416管理工具: centos6.3下安装phpredisadmin ... -
redis-install.sh
2016-05-04 08:56 4#!/bin/bash # From here: http: ... -
服务器自动化操作 RunDeck
2016-05-03 14:04 1724http://www.oschina.net/p/rundec ... -
安装Hadoop, Hbase, Phoenix
2016-04-22 09:22 1488http://my.oschina.net/jrrx/blog ... -
shell中读写mysql数据库
2016-03-13 15:32 1406http://mingxinglai.com/cn/2013/ ... -
container和主机(host)之间的文件拷贝
2016-02-04 21:33 1372http://www.cnblogs.com/lemonbar ... -
在linux操作系统下注销、关机、重启的简单命令
2016-01-31 15:28 1248一、注销的命令——Logout 是登陆的相对操作,登陆系统后, ... -
Linux如何查找大文件或目录总结
2016-01-28 22:44 1290http://my.oschina.net/u/1034537 ... -
Linux 查看磁盘空间命令
2016-01-14 22:08 1240df、du、fdisk:Linux磁盘 ... -
Linux下的压缩和解压
2015-11-10 16:13 1102Linux下的压缩(zip)解压(unzip)缩命令 http ... -
Linux下安装FFmpeg
2015-10-29 14:00 1583在线安装: 在 Ubuntu/Debian/Fedora 系统 ... -
Linux的tmpfs文件系统
2015-10-27 22:39 1064详细看原文:http://futureinhands.itey ... -
linux shell 中"2>&1"含义
2015-10-26 15:09 1273export date_str=$(date "+% ... -
centos 6.5 普通用户 开启自动运行
2015-10-15 19:30 4CentOS tomcat普通用户执行配置安装 http:// ... -
linux 统计文件夹大小
2015-10-13 22:25 1302linux 统计文件夹大小 http://www.51tes ... -
Linux命令之远程登录/无密码登录-ssh,ssh-keygen,ssh-copy-id
2015-10-11 11:13 1105http://blog.csdn.net/wangjunjun ... -
Centos 6.5设定IP
2015-09-30 08:50 1291参考: http://blog.csdn.net/sky663 ... -
docker下面tomcat执行startup.sh问题
2015-09-14 13:55 8197在做docker的时候,碰到了如果使用startup.sh是无 ... -
Centos设置Tomcat开机启动
2015-09-14 10:32 5473Centos 7 开机启动 方式1: CentOS 7.x设置 ...
相关推荐
最近因为工作要求需要用学习使用docker,最后卡...但这里有一个问题,这个IP地址并不是静态分配的,这对我们的对容器的实例的网络管理造成一了些困难。这里笔者并不想直接给出解决方案,因为那样子并没有什么卵用,理解
要配置容器 IP 桥接网络,需要使用 Docker 的网络配置命令。首先,需要创建一个桥接网络: `docker network create -d bridge mybridge` 然后,需要将容器连接到桥接网络: `docker run -it --name mycontainer -...
从实践者的角度出发,以Docker和Kubernetes为重点,沿着“基本用法介绍”到“核心原理解读”到“高级实践技巧”的思路,一本书讲透当前主流的容器和容器云技术,有助于读者在实际场景中利用Docker容器和容器云解决...
容器虚拟化技术可以为一组进程分配独立的运行环境,限制他们能使用的资源,并防止进程之间互相干扰。 Namespace 和 Cgroup 是容器虚拟化技术的核心组件。Namespace 实现了隔离,Cgroup 实现了资源控制。Namespace ...
今天在学习Docker容器的时候,在虚拟机中创建并开启了一个nginx的container,然后通过端口映射的方法,即将container的80端口映射到虚拟机的80端口,然后在宿主机上通过访问虚拟机的IP从而访问到Docker容器的Nginx...
本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决...
### Docker-compose入门案例:使用Docker Compose运行Tomcat容器 #### 创建`docker-compose.yml`文件 在运行Tomcat容器前,我们需要编写一个`docker-compose.yml`文件。例如,我们可以创建一个名为`tomcat.yml`的...
最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通。 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。 操作如下: firewall-cmd –...
- 使用`cadvisor`:一个开源工具,能够更详细地收集Docker容器的资源使用情况,包括容器内部应用的指标。 3. **Prometheus Client Libraries**: - 在Docker容器内运行的应用程序可以使用Prometheus客户端库(如...
2. **加入集群**:其他主机使用 `docker swarm join` 命令,用管理节点的 token 和 IP 加入集群。 3. **检查集群状态**:使用 `docker node ls` 查看加入的节点,`docker service inspect` 查看集群详情,`docker ...
docker容器与容器云的文档,有助于理解docker的知识。
2. 资源限制:Docker 容器的资源使用受到宿主操作系统的限制。 Docker 容器技术是一种轻量级的虚拟化技术,它可以提供快速、灵活和可靠的应用程序部署解决方案。 知识点: 1. 虚拟化技术分类:系统虚拟化和进程...
Docker 容器与容器云(第2版) PDF版本,带电子目录,结构清晰
环境说明:操作系统:Ubuntu16.04orCentOS7Kubernetes版本:v1.8.3Docker版本:v17.09-ce均采用当前最新稳定版本。关闭selinux。打开下面网址,下载下面两个红色框框的包。...kubernetes-node-linux-amd64.tar.gz上传到...
Docker 容器中 Tomcat 部署出现中文乱码解决方案 在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale...
Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。 以下操作通过myfirstapp镜像模拟,如何制作myfirstapp镜像请点击此处。 1、外部访问容器 容器启动之后,容器中可以运行一些网络应用,通过-p或-...