Ubuntu安装docker
一、安装流程
文档:https://docs.docker.com/engine/install/ubuntu/
1.1 添加 Docker 库
# 1、更新软件包
sudo apt-get update
# 2、安装 Docker 依赖
# sudo apt-get install ca-certificates curl gnupg
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 3、添加 Docker 的官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 4、添加 Docker 官方库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新
sudo apt-get update
1.2 安装 Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
若要安装其他版本 Docker 。运行下列命令检查可以安装的 Docker 版本
apt-cache madison docker-ce
挑选上面列表中的任何版本进行安装。例如,安装 5:20.10.16~ 3-0 ~ubuntu-jammy 这个版本,运行
sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io
1.3 运行Docker
安装完成后,运行如下命令验证 Docker 服务是否在运行
systemctl status docker
如果没有运行,运行以下命令运行 Docker 服务
sudo systemctl start docker
1.4 设置开机自启动
使 Docker 服务在每次重启时自动启动:
sudo systemctl enable docker
1.5 查看Docker 版本
查看已安装的 Docker 版本
sudo docker version
1.6 测试 Docker
sudo docker run hello-world
下载一个 Docker 测试镜像,并在容器内执行一个 “hello_world” 样例程序
出现下图,则Docker安装成功
1.7 添加国内镜像源
国内使用Docker下载镜像时会出现网速慢的问题,所以需要添加国内镜像源。
首先运行 sudo vim /etc/docker/daemon.json
来创建daemon.json
文件,然后将以下内容复制到daemon.json
文件中。
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://kfwkfulq.mirror.aliyuncs.com"
]
}
重启Docker
sudo service docker restart
查看添加的国内源是否生效
sudo docker info | grep Mirrors -A 4
二、遇到的问题
2.1报错E: Method https has died unexpectedly! E: Sub-process https received signal 4.
问题描述
ubuntu 执行apt update
,apt install
时,报错
E: Method https has died unexpectedly!
E: Sub-process https received signal 4.
解决办法参考
执行sudo apt 相关命令时添加 GNUTLS_CPUID_OVERRIDE=0x1 参数
sudo GNUTLS_CPUID_OVERRIDE=0x1 apt-get update
2.2 报错 curl: (56) OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
问题描述
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
报错 curl: (56) OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
解决方法
1、先到https://download.docker.com/linux/ubuntu/gpg
下载gpg文件,命名为old.gpg
2、将old.gpg
,移动到/etc/apt/keyrings/
目录下
3、再/etc/apt/keyrings/
目录下,将其解密并输出到/etc/apt/keyrings/docker.gpg
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg old.gpg
2.3 报错 W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
问题描述
sudo apt-get update
报错
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
W: Failed to fetch http://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/jammy/InRelease The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
之前添加 Docker 的官方 GPG 密钥时候,由于一直卡顿,更换了阿里云的镜像,但是同样不行。后面通过2.2的方法解决。而后阿里云的镜像就没使用,报错
解决方法
1)查看ls /etc/apt/sources.list.d/
目录中的文件列表
2)删除相应的文件(将 替换为实际的文件名)
sudo rm /etc/apt/sources.list.d/<filename>
3)更新软件包列表:sudo apt update
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!