目录
一、前提条件
二、安装步骤
1.卸载旧版本
2.安装软件包
3.设置稳定的安装源(存储库)
4.查询可安装的版本
5.安装指定的版本
6.验证安装
7.启动docker
8.测试运行容器
三、遇到的问题:Docker run hello-world 失败
解决方案:
参考Docker官网:https://docs.docker.com/engine/install/centos/
要安装 Docker Engine-Community,您需要一个 CentOS 7 的维护版本。不支持或未测试存档版本。该 centos-extras 库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要 重新启用它。(参考: https://wiki.centos.org/AdditionalResources/Repositories)overlay2 建议使用存储驱动程序
关闭防火墙
# 暂时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
代码如下:较旧的 Docker 版本称为 docker 或 docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
代码如下:yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper 存储驱动程序
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
代码如下:
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
代码如下:按版本号(从高到低)对结果进行排序
yum list docker-ce --showduplicates | sort -r
查询结果
我这里选择安装docker-ce-20.10.7版本,如果你在安装的时候查询到新的版本,只要按照格式安装就可以了,注意版本号。
软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。
例如,docker-ce-20.10.7
代码如下:
sudo yum install docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io
代码如下:安装完成后,运行下面的命令,验证是否安装成功
docker version
或者
docker info
代码如下:
systemctl start docker
代码如下:通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
docker run hello-world
容器运行时,会打印参考消息并退出
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
如果docker正常启动,但是运行hello-world下载时间超时或者失败,需要配置配置相关文件,新增daemon.json文件【本人遇到的问题】
原因:docker run hello-world 的运行原理是docker首先会在本机中寻找要运行的镜像,如果找到了就以该镜像为模板,生产容器实例运行;如果找不到,就会到远程库上查找该镜像,找到就下载该镜像到本地并以该镜像为模板生产容器实例运行,否则就会返回失败
1.首先我们得检查docker是否启动成功,用命令 docker version 查看
2.更新镜像仓库:
[root@mysql docker]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
划重点
很多资料都没有这一步,当我们新增了daemon.json文件后必须重载docker才能生效
1、systemctl daemon-reload //载入daemon.json (重新加载daemon.json文件)
2、systemctl restart docker //重启docker
完成
最后再重新测试 docker run hello-world ,成功运行!
参考博客:
https://blog.csdn.net/somken/article/details/105863921
https://www.cnblogs.com/xiaoshushu-d/p/14024449.html