admin管理员组

文章数量:1602065

现在提到容器,可能很容易想到的就是Kubernates,确实它很火,也很强大,但是对于规模非常小,容器不多的小环境,Kubernetes 就显得比较累赘了,直接使用Docker Compose拉取一个小环境,这种使用方式,也有不少用户在使用;本篇通过实战,来介绍两种,在不使用类似Kubernetes容器管理平台的下,实现跨主机Docker容器之间互通的方法;

基础环境准备

安装Docker

在能访问公网且DNS正常的情况下,将下面的代码,直接复制并在docker-host-01,docker-host-02上执行,即可完成Docker安装。

#卸载原有docker环境及依赖,并安装必要的包
yum remove docker-latest-logrotate  docker-logrotate  docker-selinux docker-engine
yum install -y yum-utils   device-mapper-persistent-data   lvm2

#使用阿里云安装源
yum-config-manager --add-repo http://mirrors.aliyun/docker-ce/linux/centos/docker-ce.repo
rpm --import http://mirrors.aliyun/docker-ce/linux/centos/gpg
yum makecache fast
yum -y install docker-ce

#安装完成启动Docker
systemctl start docker
systemctl enable docker
systemctl status docker

下载演示镜像

Docker官方在https://hub.docker/中提供了很多镜像,你可以根据自己的需要选择并下载,也可以自行安装Docker镜像仓库,此处我就直接下载使用docker hub中提供的centos官方镜像进行后续演示;

[root@docker-host-01 ~]# docker pull centos

镜像在两台Docker主机中都下载,当然如果网速慢的话,可以下载一个,然后使用docker save 打包镜像,将镜像传到第二台机器上,在用docker load导入镜像。方法很多,适合你的才是最好的。

镜像下载完成,使用docker images命令查看。

[root@docker-host-01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              470671670cac        3 days ago          237MB

通过直接路由方式实现跨主机Docker容器通信

直接路由这种方式操作起来比较简单,对Docker原生网络改变最小,只需要互相指定对方的路由即可完成跨主机Docker容器之间的互通;

主机配置及IP信息

基础环境需要准备两台主机,系统可以是CentOS,Ubuntu;需要能支持安装Docker,本实战文档中使用的主机信息如下;

主机名 IP 配置 容器网段
docker-host-01 192.168.61.132 2核4G内存,50G硬盘 172.16.200.0/24
docker-host-02 192.168.61.135 2核4G内存,50G硬盘 172.16.201.0/24

调整Docker网络配置

Docker安装完之后,默认会创建一个docker0的网桥,启动的Docker容器网段是172.17.0.1/16,如果不做调整,两台Docker主机上的容器,就可能出现IP地址冲突,所以我们先将默认docker0网桥的地址按【主机配置及IP信息】中规划的进行调整。

在docker-host-01中创建/etc/docker/daemon.json文件,内容

本文标签: 两种容器实战常用主机