二、环境搭建之CentOS安装Docker
一、前期准备
首先卸载旧版
sudo dnf remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
如果没有安装过,则提示无需任何处理
二、安装方式
一共有三种安装方式:
- 可以设置docker的仓库并从中安装,便于安装和升级任务(推荐方式)
- 可以下载RPM包,进行手动安装,并完全手动管理升级,这在无法访问互联网的隔离系统上安装docker很有用
- 在测试和开发环境中,可以使用自动化便捷脚本安装docker
三、安装步骤
这里演示用第一种方式安装docker
- 安装dnf-plugins-core包(提供了管理dnf的命令)
sudo dnf -y install dnf-plugins-core
- 设置docker仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker包
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
这个命令安装docker,但不启动docker,它还创建了一个docker组,但是默认情况下它不会向该组添加任何用户
错误解决
错误一:这里没有安装成功,提示没有导入公钥
解决命令:导入gpgkey
sudo rpm --import https://download.docker.com/linux/centos/gpg
错误二:又出现新的报错:
Curl error (35): SSL connect error for https://download.docker.com/linux/centos/docker-ce.repo~/repodata/repomd.xml [OpenSSL SSL_connect: 连接被对方重设 in connection to download.docker.com:443 ]
应该是docker官方库访问不到
解决:改成阿里云的地址
a. 清除之前的缓存
sudo dnf clean all
b. 改成阿里云的镜像地址
sudo dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce-staging.repo
再次输入命令后安装成功
- 启动docker
sudo systemctl enable --now docker
当启动系统配置Docker系统服务去自动启动,如果不想自动启动dokcer,可以使用
sudo systemctl start docker
四、验证安装是否成功
通过运行hello-world镜像来验证安装是否成功
docker run hello-world
又报错:提示没有权限通过socket去连接docker
解决:
- 查看/etc/docker下面有没有deamon.json文件,没有则创建
sudo touch /etc/docker/daemon.json
在文件内添加:
{"registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
],"insecure-registries" : ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],
"debug": true,
"experimental": false
}
- 重载和重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
- 重新执行命令:
sudo docker run hello-world
- 运行成功
- 查看docker的运行状态
systemctl status docker
至此安装成功啦~~