Docker 引擎是一种开源容器化技术,用于构建和容器化应用程序。Docker 引擎充当客户端-服务器应用程序,具有:
根据官方文档,安装 Docker 引擎主要有以下方式:
设置 Docker 存储库
并从中进行安装,以便于安装和升级任务。这是推荐的方法。下载 RPM 包并手动安装
,并完全手动管理升级。这在诸如在无法访问互联网的气隙系统上安装Docker之类的情况下非常有用。自动化的便利脚本
来安装Docker。存储库
安装 Docker 引擎。在CentOS虚拟机上首次安装 Docker 引擎之前,我们需要先设置 Docker 存储库。之后,就可以从存储库安装和更新 Docker。要安裝 Docker 引擎,需要一个7 或 8 版本的 CentOS 操作系统。不支持或测试存档版本。
安装软件包(提供实用程序)并设置稳定存储库。yum-utilsyum-config-manager
#安装所需的软件包
sudo yum install -y yum-utils
#使用官方源地址设置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可以使用- v
命令,获得版本号即安装成功
# 查看是否安装成功 可以输出版本号即安装成功
docker -v
可以看到,我们成功获得了Docker版本号,说明Docker成功安装。
接下来,我们通过软件安装包自带的 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
#启动 Docker
sudo systemctl start docker
#运行 hello-world 映像,验证Docker是否运行正常
sudo docker run hello-world
Swarm是一个由Docker研发团队开发的调度工具,可以使用标准的Docker 应用编程接口。
Swarm有三个核心概念:节点、服务和任务。
首先,通过pull
命令拉取swarm镜像。
#拉取swarm镜像
docker pull swarm
最后一行显示信息 Status: Downloaded newer image for swarm:latest
,说明拉取成功。
然后,初始化Swarm的命令为:
#搭建单机版swarm
docker swarm init
执行该命令后,获取全球唯一的 token,作为Swarm环境的唯一标识,效果如下:
第一行显示信息
Swarm initialized: current node (keqqzujpo2a24wnpvdvofxtm9) is now a manager.
,说明单机版swarm初始化成功。
通过Docker配置信息,查看是否安装了Swarm
# 查看Docker配置信息
docker info
接下来,我们创建部署简单的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
服务2:redis2
通过ls
列出服务命令列出正在运行的service服务。
# 确认是否创建成功
docker service ls
# 删除service
docker service rm redis
# 查看是否删除成功
docker service ps redis
用同样的方法移除redis2服务。
最后,通过leave
指令退出swarm。
# 退出swarm
docker swarm leave --force
更多Docker Swarm服务操作可参考docker service官方文档。
本人在配置过程中,主要遇到以下问题:
问题:
在CentOS 8中,由于镜像列表中没有url,使用yum
配置Docker仓库时会出现如下错误:
这是因为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了。参考文档
安装完docker后,执行docker拉取镜像命令,出现以下报错:
我们可以创建 docker 用户组,并将当前用户加入到 docker 用户组中,就可以执行 docker 相关命令了。
具体操作命令如下:
sudo groupadd docker # 添加docker用户组
sudo gpasswd -a $USER docker # 将登陆用户加入到docker用户组中
newgrp docker # 更新用户组
docker images # 测试docker命令在不加sudo时是否可以使用
此外,还有另一种解决方案:使用 sudo 获取管理员权限,运行 docker 命令时在前面加上 sudo。具体可看参考文档