序:不知道是因为vm或者kali、还是其它的缘故。安装docker后总是可以运行,但是无法拉取镜像。经过网上一系列的搜索和尝试,最终才解决。这里进行记录,以备后用。
1、准备
环境:vm、kali系统,nat
切换管理员权限:
sudo su
2、配置apt源和更新
vim /etc/apt/sources.list
apt update
apt upgrade
3、安装docker
apt install docker.io
docker的安装,核心的就是这一条命令。(181条消息) kali下对Docker的详细安装_kali安装docker_萌褚的博客-CSDN博客
网上一些文档会要求加入gpg key,设置https方法和ca证书,安装和更新dirmngr等,但是否影响不确定。kali下docker安装教程 - LEOGG - 博客园 (cnblogs.com)
4、测试和报错
# 启动docker
systemctl start docker
# 查看docker状态
systemctl status docker
# 查看docker版本
docker -v
- 一般,安装成功后,以上测试都是没有问题的。
- 但是,接下来拉取镜像就可能存在问题
无论是docker run还是docker pull、docker search或者其它,无法拉取镜像。参照网上搜索,可能是几方面问题:
- vm未连接网络,可以通过vm浏览器或者ping命令排查
- docker镜像默认是国外的,需要配置国内的加速。这并没有解决我这里的问题,配置国内加速但无效,仍报错。但加速配置理论上是有益的,因此后续作为配置之一
5、配置
5.1解决异常
(1)编辑配置以下文件
vim /etc/resolv.conf
编辑前的文本是:192.168.0.1
编辑后的文本是
(2)重启网络服务
尝试命令:
systemctl restart network
但是我这里执行失败,解决Failed to restart network.service: Unit network.service not found. (95its.com)
执行:
service networking restart
(3)再次进行docker search、docker run命令,成功执行
5.2 加速器配置和其它
这些是在5.1配置之前的,并未改变异常结果。但是也很难完全排除其作用,尤其是加速器配置本身是有益的,建议进行配置。
(1)网络改NAT为桥接模式
(2)配置加速
vim /etc/docker/daemon.json
- 我这里仅配置了一个阿里云加速,是注册,然后免费使用的
systemctl daemon-reload
systemctl restart docker
- 启用设置,重新启动docker