第十一章 docker swarm集群部署


前言

docker swarm 集群部署及portainer安装。本文相关文件下载 Go!

一、安装docker

1.1 解压

tar -zxvf docker-19.03.6.tgz

cp docker/* /usr/bin/

1.2 配置docker 存储目录和dns

/data/server/docker 为实际目录,操作前创建该目录,确保目录挂载到数据盘。 请不要使用系统盘的目录

mkdir -p /data/server/docker

vi /etc/docker/daemon.json

{
   

"data-root" : "/data/server/docker"

}

1.3 添加docker.service文件

vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd  --bip=172.20.1.0/16
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

1.4 docker 启动验证

重新加载配置systemctl daemon-reload
启动Dockerservice docker start
查看docker启动状态systemctl status docker
查看启动容器docker ps
设置开机自启动systemctl enable docker.service
查看docker开机启动状态 enabled:开启, disabled:关闭systemctl is-enabled docker.service

二、docker swarm 集群配置

2.1 关闭selinux

vi /etc/selinux/config

将 SELINUX=enforcing 改为 SELINUX=disabled #永久关闭,需要重启系统后生效

setenforce 0 #临时生效

2.2 设置主机名称并加入/etc/hosts

代码如下(示例):

例如:

192.168.33.11 master

192.168.33.12 node01

192.168.33.13 node02

2.3 修改各个服务器名称(uname -a 进行验证)

hostnamectl set-hostname docker_master

hostnamectl set-hostname docker_node01

hostnamectl set-hostname docker_node02

2.4 初始化swarm

  1. 修改时间 date -s "2023-11-09 19:04:00"
  2. 把一台机器master充当管理节点,第二台node01 、第三台node02作为工作节点。
    在master节点执行:docker swarm init --advertise-addr {ip}
    {ip } 为实际master的 eth 网卡 对应的ip地址,命令执行后,会有如下信息
docker swarm join --token SWMTKN-1-05nc145s79y1l2zx1q4qtcfb0xtfzltzjb3gz757vwgi5o9y14-cgzm7zpcti9u9y3a53s8haq55 {
   ip}:{
   port}
  1. 这个回显的命令就是工作节点需要执行的命令,直接分别在node节点执行即可
    以上命令可以在master节点中执行 docker swarm join-token worker 进行获取

2.5 删除node节点

node节点执行 docker swarm leave
manager节点执行 docker swarm leave --force

三、安装 portainer(自选)

3.1 主节点机器,上传portainer.tar

docker load --input portainer.tar

创建portainer的数据存储路径 如 /data/server/portainer

3.2 启动portainer

docker run -d -p 39000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/server/portainer:/data -d portainer/portainer

替换路径后执行以上命令,访问ip:39000即可访问portainer页面,初次进入只需要设置用户名密码即可,直接点击local标签然后connect即可,其余无需操作

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 16:54:11       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 16:54:11       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 16:54:11       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 16:54:11       20 阅读

热门阅读

  1. PaddleDetection训练目标检测模型

    2023-12-07 16:54:11       38 阅读
  2. docker 安装nacos

    2023-12-07 16:54:11       38 阅读
  3. flink1.10袋鼠云 迁移 flink1.15原生环境 事项汇总

    2023-12-07 16:54:11       38 阅读
  4. 网络通信安全的坚固防线双向认证技术详解

    2023-12-07 16:54:11       39 阅读
  5. TCP聊天

    TCP聊天

    2023-12-07 16:54:11      38 阅读
  6. 考研英语语法(十六)

    2023-12-07 16:54:11       34 阅读
  7. 数据库含EXISTS的查询

    2023-12-07 16:54:11       38 阅读