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

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

  • 在 CentOS 上安装 Docker 引擎
    • Docker概述
    • 使用 Docker 仓库进行安装
    • 测试Docker是否安装成功
  • 安装单机版Swarm
    • Swarm概述
    • Swarm单机版安装过程
      • 1.拉取swarm镜像
      • 2.初始化单机版Swarm
      • 3.查看Swarm是否创建成功
    • 在单机版Swarm部署任务
  • 遇见问题及解决方案
    • 1.CentOS 8 执行 yum 命令提示:No URLs in mirrorlist error
    • 2.执行 Docker 命令提示:Get Permission Denied

在 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

安装成功效果如下:
CentOS 8安装单机版Docker-Swarm并试用_第1张图片
然后,设置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

CentOS 8安装单机版Docker-Swarm并试用_第2张图片
可以看出,Docker引擎能够正常运行。

安装单机版Swarm

Swarm概述

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

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

Swarm的工作模式如图所示。
CentOS 8安装单机版Docker-Swarm并试用_第3张图片

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

Swarm单机版安装过程

1.拉取swarm镜像

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

#拉取swarm镜像
docker pull swarm

CentOS 8安装单机版Docker-Swarm并试用_第4张图片
最后一行显示信息 Status: Downloaded newer image for swarm:latest,说明拉取成功。

2.初始化单机版Swarm

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

#搭建单机版swarm
docker swarm init

执行该命令后,获取全球唯一的 token,作为Swarm环境的唯一标识,效果如下:
CentOS 8安装单机版Docker-Swarm并试用_第5张图片第一行显示信息 Swarm initialized: current node (keqqzujpo2a24wnpvdvofxtm9) is now a manager.,说明单机版swarm初始化成功。

3.查看Swarm是否创建成功

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

# 查看Docker配置信息
docker info

CentOS 8安装单机版Docker-Swarm并试用_第6张图片
可以看出,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。具体可看参考文档

你可能感兴趣的:(docker,centos,linux)