Docker 容器编排应用

安装两台虚拟机并且修改名字为:

hostnamectl set-hostname master         第一台主机

hostnamectl set-hostname node            第二台主机

两台主机都要修改/etc/hosts 下面的文件:

两台主机都关闭防火墙:

systemctl disable firewalld;systemctl stop firewalld

 两台主机都需要修改/etc/selinux/config 下面的文件:

修改SELINUX就可以
SELINUX=disabled

 两台主机都需要安装docker

安装docker查看Docker 容器综合应用

第一台主机配置时间服务器:

  • 下载时间服务软件包:
yum install chrony -y
  • 修改/etc/chrony.conf 里面的内容
server ntp3.aliyun.com iburst

allow all

  • 重新启动时间服务器:
systemctl enable chronyd.service ;systemctl restart chronyd.service
chronyc sources         查看时间同步

第二台主机配置时间服务器:

  • 下载时间服务软件包:
yum install chrony -y
  • 修改/etc/chrony.conf 里面的内容
server master iburst

  • 重新启动时间服务器:
systemctl enable chronyd.service ;systemctl restart chronyd.service
chronyc sources 查看时间同步

两台主机修改/lib/systemd/system/docker.service 底下文件:

将:
ExecStart=/usr/bin/dockerd


修改为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

进入/etc/docker 编辑并写入daemon.json 文件

{
  "registry-mirrors":
["https://hub-mirror.c.163.com/"]
}

 两台主机重启文件和docker:

systemctl daemon-reload
systemctl restart docker

拉取Swarm镜像:

  • 两台主机拉取Swarm镜像。
docker pull swarm

在master节点创建Swarm集群。

docker swarm init --advertise-addr 本机IP

Node节点加入集群:

  • 复制命令到node节点:

  • 去master节点,查看各节点状态。

安装Portainer

Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型企业对容器管理的全部需求。

在master节点拉取镜像:

docker pull portainer/portainer

创建服务:

docker service create --name portainer --publish 9000:9000 --replicas=1 --constraint 'node.role==manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=volume,src=portainer_data,dst=/data portainer/portainer -H unix:///var/run/docker.sock

访问方式:http://IP:9000 ,首次登录需要注册用户,给用户admin设置密码,如下图:

  • master节点上操作:

拉取httpd镜像:

docker pull httpd

拉取httpd镜像并创建web_server服务:

docker service create --name web_server httpd

查看服务并查看web_server服务运行节点

docker service ls

web_server 伸缩,增加至 5 个副本实例

docker service scale web_server=5

 

查看当前 service 服务,查看 web_server 服务所在的节点

docker service ps web_server

web_server 伸缩,减少至 2 个副本实例

查看当前 service 服务,查看 web_server 服务所在的节点

docker service scale web_server=2

docker service ps web_server

访问service服务

查看各节点副本实例分布,Master 节点上有 web_server 的一个副本,监 听了 80 端口,外部主机无法访问该副本实例

docker service ps web_server

docker ps

Master 节点添加 web_server 服务外部访问功能。即实现 http://任意节 点:8080 访问 web_server 服务的副本实例

docker service update --publish-add 8080:80 web_server

访问两个节点的IP地址:

swarm集群节点调度

查看所有节点状态:

docker node ls

docker service ls

docker service ps web_server

禁止 master 节点运行 web_server 的副本实例

docker node update --availability drain master

查看 web_server 服务副本实例数量

docker service ls

docker service ps web_server

版权声明:
作者:小李
链接:https://xianshengli.cc/docker-%e5%ae%b9%e5%99%a8%e7%bc%96%e6%8e%92%e5%ba%94%e7%94%a8/
来源:先生不吃香菜
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Docker 容器编排应用
安装两台虚拟机并且修改名字为: hostnamectl set-hostname master 第一台主机 hostnamectl set-hostname node 第二台主机 两台主机都……
文章目录
关闭
目 录