WSL安装Docker与密钥排错
本文最后更新于 2024-10-18,文章内容距离上一次更新已经过去了很久啦,可能已经过时了,请谨慎参考喵。
title: WSL安装Docker与密钥排错
top_img: false
tags:
- WSL
- Docker
categories:
- Linux
cover: false
abbrlink: e5f6a19a
date: 2023-12-10 10:18:55
copyright:
comments:
前言
最近在学习go语言,在社区里看到一篇用docker部署go语言的帖子,很是有趣,便想着自己折腾一下试试,刚好win下面有WSL,可以很方便的部署与测试,但是过程中还是踩坑了不少,所以来记录一下。
正文
(1)卸载老版本
sudo apt-get remove docker docker-engine docker.io containerd runc
如果是首次安装,请忽略。
(2)更新apt包索引
sudo apt-get update
(3)安装 apt 依赖包,用于通过HTTPS来获取仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
(4)添加Docker的官方GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
排错
添加docker的GPG密钥之后,或者更新apt包索引,会出现一个警告:
这个警告大概的意思是我们把软件包的秘钥保存到了 /etc/apt/trusted.gpg
这个老版本系统的文件里。
这里系统提示只是告诉你新版系统不能把秘钥放在 /etc/apt/trusted.gpg
里,但是没告诉我们新版系统的秘钥究竟要放在那里。
其实答案很简单,就在 /etc/apt/trusted.gpg.d
目录下:
在执行完第4步添加密钥之后,可以看到上述目录中出现了一个 trusted.gpg
文件,这就是我们添加的密钥。
可以通过 sudo apt-key list
来查看当前系统中的密钥:
每个秘钥的第二行都有一串十六进制的编码,这个编码就是这个秘钥的 id
。
导出我们添加的docker的密钥:
apt-key export 0EBFCD88 | gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
1、使用root用户执行,
sudo
命令权限是不够的。2、导出时的秘钥只需要后8位的
id
即可,而且id
之间没有空格。
将秘钥导出后就可以把 /etc/apt
目录下 trusted.gpg
文件删除了。
继续正文
(5)验证密钥
sudo apt-key fingerprint 0EBFCD88
(6)设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
设置完之后请更新apt包索引:
sudo apt-get update
。
(7)安装最新版本的Docker Engine-Community
sudo apt-get install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本:
$ apt-cache madison docker-ce docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages ... $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
(8)测试是否安装成功
sudo docker run hello-world
请确保电脑联网,会自动下载该测试镜像。
(9)为普通用户增加权限
docker默认普通用户是没有权限的,可以通过下列命令为普通用户增加docker运行的权限。
#添加你的用户进docker用户组
sudo usermod -aG docker <username>
#更新docker用户组
newgrp docker
#测试普通用户权限
docker run hello-world