实现宿主机网卡添加到Docker容器

在AWS上部署docker应用有两种途径,一种是直接使用AWS的EC2 Container Service(ECS)产品,优点是可基于资源需求跨集群放置容器,并且与AWS的其他产品,如负载均衡、安全组、卷、角色等集成。另一种是全自助从头搭建,这种方式有助于学到更多东西。 以下方法是为了解决全自助方式下,配置容器网络遇到的这个问题:想要给EC2中运行的容器实例添加虚拟网卡并分配IP地址,使其像普通EC2实例一样加入到指定的VPC的某个子网里,同时受控于安全组策略和路由设置。 步骤 首先在AWS控制台创建新的网络接口,并将其附加到docker容器所在的宿主机上。允许附加的网络接口数量受限于宿主机的机型,附加成功后在宿主机上用ifconfig命令可以看到。 第二步,在宿主机上创建并启动无网络设置的docker容器实例。 第三步,

Postgres XL运行在Docker容器中

这次实践是在Postgres XL实践基础上进一步尝试结合docker使用,主要目的是为了简化节点环境配置和Postgres XL版本升级过程。 目标是启动一批由相同镜像创建的容器,支持SSH访问,然后通过pgxl_ctl脚本管理Postgres-XL集群。 Docker镜像构建 首先对文件和目录进行划分,分为docker镜像部分和非docker镜像部分。 镜像部分 编译后的Postgres-XL二进制文件。 Postgres-XL运行时依赖的lib、系统参数和常用工具。 用户和SSH权限配置,使容器彼此通过postgres用户免密码访问。 .pgpass文件的软链接。因为尝试指定该文件路径的方式没成功,所以改为软链接的方式。 非镜像部分 配置和数据文件。 日志文件。 pgpass.conf文件。 其中镜像部分写入Dock

在云主机中安装运行boot2docker

背景 在某云上购买云服务器,初始安装的操作系统是Ubuntu14.04(没有boot2docker镜像,甚至没有Ubuntu16)。从官方下载boot2docker.iso或boot2docker-experimental.iso文件,目标是把它安装到云服务器中,并在某云的vnc控制台重启系统时选择boot2docker系统。 过程 准备镜像文件 首先把boot2docker.iso文件放到某个目录下,例如/boot/iso目录,然后将其挂载到另一个自定义的路径下,之后便能在该路径下查看和复制镜像中的文件。也可以通过解压iso文件的方式查看。 然后复制initrd.img文件和vmlinuz64文件到/boot目录下。 配置boot2docker系统启动项菜单 查看/boot目录可以看到主机的操作系统是通过grub引导加载

Docker学习记录

Docker是轻量级的容器化技术,其优势是容器开销低、开发与运行环境一体化、易移植、易部署等。其实现思路是在宿主机系统中运行docker-engine环境,然后在这个环境里运行一个一个的容器。所谓容器包含了开发者应用或服务、运行参数和依赖环境。例如,一个java web应用常见的开发、测试、线上部署情况是这样,从头到尾传递的都是可在web容器中运行的web应用程序,甚至仅仅是一个jar包。其运行所依赖的参数和第三方程序是单独需要配置和安装的。这可能会造成开发、测试、线上的环境不一致或,并带来重复繁琐的工作量。引入docker后,交付的不再仅仅是web应用本身,而是包含web应用、web容器、jdk、操作系统等内容的docker容器,不同环境下只需支持docker就可以快速发布运行。 Docker容器可以被固化,构建成只读的