CentOS 8安装单机版Docker-Swarm并试用

在 CentOS 上安装 Docker 引擎

Docker概述

Docker 引擎是一种开源容器化技术,用于构建和容器化应用程序。Docker 引擎充当客户端-服务器应用程序,具有:

  • 具有长时间运行的守护进程 dockerd 的服务器。
  • API,用于指定程序可用于与 Docker 守护程序通信和指示的接口。
  • 命令行界面 (CLI) 客户端 Docker。

根据官方文档,安装 Docker 引擎主要有以下方式:

  • 大多数用户设置 Docker 存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法。
  • 某些用户下载 RPM 包并手动安装,并完全手动管理升级。这在诸如在无法访问互联网的气隙系统上安装Docker之类的情况下非常有用。
  • 在测试和开发环境中,一些用户选择使用自动化的便利脚本来安装Docker。
    本文采用使用存储库安装 Docker 引擎。在CentOS虚拟机上首次安装 Docker 引擎之前,我们需要先设置 Docker 存储库。之后,就可以从存储库安装和更新 Docker。

使用 Docker 仓库进行安装

要安裝 Docker 引擎,需要一个7 或 8 版本的 CentOS 操作系统。不支持或测试存档版本。
安装软件包(提供实用程序)并设置稳定存储库。yum-utilsyum-config-manager

#安装所需的软件包
sudo yum install -y yum-utils

安装成功效果如下:
安装Docker软件包
然后,设置Docker仓库。

#使用官方源地址设置仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

设置Docker 存储库

测试Docker是否安装成功

可以使用- v命令,获得版本号即安装成功

# 查看是否安装成功 可以输出版本号即安装成功
docker -v

查看Docker版本号
可以看到,我们成功获得了Docker版本号,说明Docker成功安装。
接下来,我们通过软件安装包自带的 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

#启动 Docker
sudo systemctl start docker
#运行 hello-world 映像,验证Docker是否运行正常
sudo docker run hello-world

运行 hello-world 映像
可以看出,Docker引擎能够正常运行。

安装单机版Swarm

Swarm概述

Swarm是一个由Docker研发团队开发的调度工具,可以使用标准的Docker 应用编程接口。
Swarm有三个核心概念:节点服务任务

  • 节点是已加入Swarm的Docker引擎的实例
  • 服务是在Worker节点上执行的
  • 任务是在Docker容器中执行的命令

Swarm的工作模式如图所示。
Swarm工作模式

  • Manager:接收客户端服务请求,将任务发送到worker节点;维护集群期望状态和集群管理功能及Leader选举。默认情况下manager节点也会运行任务,也可以配置只做管理任务。
  • Worker:接收并执行从管理节点分配的任务,并报告任务当前状态,以便管理节点维护每个服务期望状态。

Swarm单机版安装过程

1.拉取swarm镜像

首先,通过pull命令拉取swarm镜像。

#拉取swarm镜像
docker pull swarm

拉取swarm镜像
最后一行显示信息 Status: Downloaded newer image for swarm:latest,说明拉取成功。

2.初始化单机版Swarm

然后,初始化Swarm的命令为:

#搭建单机版swarm
docker swarm init

执行该命令后,获取全球唯一的 token,作为Swarm环境的唯一标识,效果如下:
初始化Swarm第一行显示信息 Swarm initialized: current node (keqqzujpo2a24wnpvdvofxtm9) is now a manager.,说明单机版swarm初始化成功。

3.查看Swarm是否创建成功

通过Docker配置信息,查看是否安装了Swarm

# 查看Docker配置信息
docker info

Docker配置信息
可以看出,Swarm配置成功且启动成功。

在单机版Swarm部署任务

接下来,我们创建部署简单的service服务。

#服务1
docker service create --name redis redis:3.0.6
#服务2
docker service create --mode global --name redis2 redis:3.0.6

服务1:redis
创建redis服务
服务2:redis2
创建redis服务2
通过ls列出服务命令列出正在运行的service服务。

# 确认是否创建成功
docker service ls

列出服务
通过rm指令删除已部署的service。

# 删除service
docker service rm redis
# 查看是否删除成功
docker service ps redis

在这里插入图片描述
用同样的方法移除redis2服务。
最后,通过leave指令退出swarm。

# 退出swarm
docker swarm leave --force

在这里插入图片描述
更多Docker Swarm服务操作可参考docker service官方文档

遇见问题及解决方案

本人在配置过程中,主要遇到以下问题:

1.CentOS 8 执行 yum 命令提示:No URLs in mirrorlist error

问题:
在CentOS 8中,由于镜像列表中没有url,使用yum配置Docker仓库时会出现如下错误:
No URLs in mirrorlist error
这是因为CentOS官方已从官方镜像中移除CentOS 8的所有包。若想继续运行CentOS,可以用仍在运行的URL替换源。
使用vault.centos.org代替mirror.centos.org,操作指令如下

sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

执行完毕,就可以正常安装Docker了。参考文档

2.执行 Docker 命令提示:Get Permission Denied

安装完docker后,执行docker拉取镜像命令,出现以下报错:
Get Permission Denied
我们可以创建 docker 用户组,并将当前用户加入到 docker 用户组中,就可以执行 docker 相关命令了。
具体操作命令如下:

sudo groupadd docker     		# 添加docker用户组
sudo gpasswd -a $USER docker    # 将登陆用户加入到docker用户组中
newgrp docker     				# 更新用户组
docker images    				# 测试docker命令在不加sudo时是否可以使用

此外,还有另一种解决方案:使用 sudo 获取管理员权限,运行 docker 命令时在前面加上 sudo。具体可看参考文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值