1 基础知识
2 最佳实践
2.1 系统环境配置
2.1.1 系统环境信息
HOST = hd0[1-n]
OS = Oracle Linux 10.x x86_64
IP Address = 10.168.0.2[10-1x]
2.1.2 部署常用工具
In hd0[1-n]
yum install -y vim wget net-tools unzip
2.1.3 设置内存权限大小
In hd0[1-n]
echo 'vm.max_map_count = 262144' >> /etc/sysctl.d/100-docker.conf sysctl -p /etc/sysctl.d/100-docker.conf sysctl -a | grep vm.max_map_count
显示如下则达成目的:
vm.max_map_count = 262144
2.1.4 关闭SELinux
In hd0[1-n]
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
2.1.5 设置时区
In hd0[1-n]
timedatectl set-timezone Asia/Shanghai
2.1.6 配置名称解析
In hd0[1-n]
echo '10.168.0.210 hd01 hd01.cmdschool.org' >> /etc/hosts echo '10.168.0.211 hd02 hd02.cmdschool.org' >> /etc/hosts
2.2 软件环境配置
2.2.1 升级系统到指定版本
In hd0[1-n]
yum -y update
然后,重启系统验证配置,
reboot
2.2.2 手动配置Docker的源(可选)
In hd0[1-n]
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
或者,可是使用如下手动设置,
curl https://download.docker.com/linux/rhel/docker-ce.repo > /etc/yum.repos.d/docker-ce.repo
2.3.3 安装DockerCE相关包
In hd0[1-n]
dnf install -y docker-ce-29.4.0
验证管理用户的创建,
grep -i docker /etc/group /etc/passwd
显示如下:
/etc/group:docker:x:994:
注:docker组已经创建,但尚未有用户加入该组
2.3.4 启动Docker并配置自启动
In hd0[1-n]
systemctl enable docker.service systemctl start docker.service systemctl status docker.service
2.3.5 修改Docker存储位置
In hd0[1-n] 查看存储的类型与位置
docker info | egrep -i "Docker Root Dir|Storage Driver"
显示如下:
Storage Driver: overlayfs Docker Root Dir: /var/lib/docker
停止Dcoker的服务
systemctl stop docker.service
迁移存储数据
mkdir -p /data/docker/ mv /var/lib/docker /data/docker/runningdata
定义新的存储位置:
vim /etc/docker/daemon.json
更改如下参数:
{
"storage-driver": "overlay2",
"data-root": "/data/docker/runningdata"
}
启动Dcoker的服务
systemctl start docker.service
确认钱以后的存储的类型与位置
docker info | egrep -i "Docker Root Dir|Storage Driver"
显示如下:
Storage Driver: overlay2 Docker Root Dir: /data/docker/runningdata
2.3.6 校验安装的版本
In hd0[1-n]
docker --version
2.3.7 查看更详细的版本
In hd0[1-n]
docker info
信息显示如下:
Containers: 0 Running: 0 Paused: 0 […]
3 搭建Swarm集群
3.1 Swarm集群的基础知识
– Swarm集群是一组运行Docker并加入集群中的机器
– 加入集群后,运行的Dckcek将在集群管理器中执行
– 群体中的机器可以是物理节点也可以是虚拟节点
– Swarm集群支持多种策略运行容器(例如应用运行在负载最低节点)
– 集群管理者是集群中唯一可以执行命令的机器或授权的其他机器
3.2 配置公钥认证(可选)
In hd0[1-n]
ssh-keygen
向导如下,
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: […]
然后,使用如下命令部署公钥,
ssh-copy-id -i ~/.ssh/id_rsa.pub hd02
部署完毕后,使用如下命令测试,
ssh hd02
3.3 建立你的集群
3.3.1 配置主机防火墙
In hd0[1-n]
systemctl stop firewalld.service systemctl disable firewalld.service
3.3.2 执行的步骤
运行“docker swarm init”启用集群模式
运行“docker swarm join”将新的节点加入集群
3.3.3 管理主机启用集群
In hd01
docker swarm init
提示如下:
Swarm initialized: current node (km3cx63bzg9pfaue0o8hbo8m9) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-2o1l0zx4ow0av23rvffgi8827t6dk8zobmscph7ypscgplm61p-ejp2a1v7665uyw2yr0yoft3zv 10.168.0.210:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
3.3.4 将成员主机加入集群
In hd0[2-n]
docker swarm join --token SWMTKN-1-2o1l0zx4ow0av23rvffgi8827t6dk8zobmscph7ypscgplm61p-ejp2a1v7665uyw2yr0yoft3zv 10.168.0.210:2377
另外,以上字符串如果忘记,可通过如下命令查询,
In hd01
docker swarm join-token worker
3.3.5 查看群集成员
In hd01
docker node ls
显示如下:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION km3cx63bzg9pfaue0o8hbo8m9 * hd01.cmdschool.org Ready Active Leader 29.4.0 jw10e1kylrk5pwvs1bzv0l95b hd02.cmdschool.org Ready Active 29.4.0
4 部署Docker Registry服务
5 部署Portainer服务
参阅文档
====================
Docker引擎
———-
https://docs.docker.com/engine/
Docker引擎的安装
———-
https://docs.docker.com/engine/install/rhel/#installation-methods
https://docs.docker.com/engine/install
没有评论