Ubuntu之docker安装:
装docker毕竟一般是 CentOS 我之前在大二也是在GentOS上安装的docker,这节课的内容是已经完成过的,在征得老师同意后,我准备在ubuntu上安装一个docker。
代码语言:javascript复制# 此处的ubuntu环境是我使用一段时间的,各种基础配置已经配置完毕。
# 如操作中出现网络环境 apt更新之类问题请先完成ubuntu环境的配置。
总之就是一堆报错…..慢慢在修报错的过程……
大部分情况下均需要使用sudo权限,建议直接使用root用户。
第一次尝试: curl -sSL https://get.daocloud.io/docker | sh 使用国内一键安装命令
一大堆报错,其中有个报错,应该是因为我当时安装过一个低版本的docker.io所以卸载掉就行。
代码语言:javascript复制$ sudo apt-get remove docker docker-engine docker.io containerd runc
如果之前安装过docker,需要完全卸载docker # 1. 删除软件以及安装时自动安装的所有包 sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc -y # 2. 查看docker中其他没有卸载的包 dpkg -l | grep docker # 3. 卸载没有删除的docker相关插件 sudo apt remove --purge docker-ce -y sudo apt-get autoremove docker-ce-* -y # 4. 删除docker的相关配置&目录 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd sudo rm -rf /var/run/docker* # 5. 确认docker卸载完毕 docker --version which docker
同时apt是无法连接HTTPS连接的,这里我们应该先配置环境使其能够使用https连接。
代码语言:javascript复制sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
第二次尝试:
:~$ sudo apt update [sudo] root 的密码: 命中:1 http://archive.ubuntu.com/ubuntu impish InRelease 获取:2 http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] 错误:2 http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY XXXXXXXXXXXX 命中:3 http://archive.ubuntu.com/ubuntu impish-updates InRelease 命中:4 http://archive.ubuntu.com/ubuntu impish-backports InRelease 命中:5 http://archive.ubuntu.com/ubuntu impish-security InRelease 已下载 88.7 kB,耗时 14秒 (6,354 B/s) 正在读取软件包列表… 完成 正在分析软件包的依赖关系树… 完成 正在读取状态信息… 完成 有 1157 个软件包可以升级。请执行 ‘apt list –upgradable’ 来查看它们。 W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。 gpg:警告:homedir’/home/user/.gnupg’上的所有权不安全
一大堆警告,一个一个解决吧,没有公钥就添加公钥, 从网上找到解决办法:
代码语言:javascript复制sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXXXXXXXXXX
但是在我的虚拟机上又有了新的报错
Executing: /tmp/apt-key-gpghome.pOvnFYETfm/gpg.1.sh –keyserver keyserver.ubundu.com –recv-keys XXXXXXXXXXXX gpg: 从公钥服务器接收失败:Server indicated a failure
还是在网络上找到了新的解决方法
代码语言:javascript复制sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv XXXXXXXXXXXXXXXX
参照网络上的内容应该能正常导入缺少的秘钥,但我这边
代码语言:javascript复制Executing: /tmp/apt-key-gpghome.9YTKc9ICOA/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv EB3E94ADBE1229CF
gpg: 密钥 EB3E94ADBE1229CF:公钥 “Microsoft (Release signing) <gpgsecurity@microsoft.com>” 已导入
gpg: 处理的总数:1
gpg: 未导入:1
明显没有成功。继续寻找解决办法
代码语言:javascript复制curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
执行之后继续执行:
apt-get update 执行已经正常 apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 安装最新版的docker
也不是很麻烦,大概......