重启docker 报错
想重启docker, 如果都执行了以下不同的命令
sudo systemctl restart docker
sudo service docker restart
sudo systemctl start docker.service
都出现报错这个报错:Failed to restart docker.service: Unit docker.service not found.
这是因为在安装docker的时候没有使用官方安装包,也没有使用apt, 而是在安装ubuntu虚拟机的时候,顺带勾选了安装docker , 此时docker是使用snap进行安装的。
snap list
可查看snap安装过的包
如果想要重启使用sudo snap restart docker
docker安装与卸载
由于我是之前由snap进行安装的docker, 无论根据文档怎样配置,镜像源地址就是不生效,于是想进行一个卸载重新安装
snap安装docker 卸载命令:sudo snap remove docker
安装docker 方法一
官方版本安装docker: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后,可以把当前用户加入到docker分组中,这样后续运行docker命令可以不加sudo。
#添加当前用户到docker用户组
sudo usermod -aG docker $USER
#更新用户组
newgrp docker
安装docker 方法二
此方法参照:https://blog.csdn.net/BigData_Mining/article/details/87868711
这种安装方式需保证可以访问docker仓库地址https://download.docker.com/linux/ubuntu
-
sudo apt update
如果安装docker时候报错找不到docker,那这里使用sudo apt-get update) -
sudo apt install apt-transport-https ca-certificates curl software-properties-common
-
在
/etc/apt/sources.list.d/docker.list
文件中添加下面内容deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
-
添加秘钥,可以添加官方的和阿里的
// 官方 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - // 阿里 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加完毕以后,执行
sudo apt-key fingerprint 0EBFCD88
验证,正常情况下输出pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ 未知 ] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
-
列出可用的版本
apt-cache madison docker-ce
选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:
sudo apt-get install docker-ce=<VERSION> 如: sudo apt-get install docker-ce=5:20.10.0~3-0~ubuntu-focal
-
安装最新docker-ce:
sudo apt-get install -y docker-ce
-
查看是否安装成功:
docker -v
或者docker --version
会输出对应的版本信息 -
将用户添加进docker组,这个方法一中已经说过了
ubuntu 修改拉取镜像源
-
docker 换源的配置文件默认在
/etc/docker/daemon.json
, 若不存在自己创建即可 -
国内几个可用的镜像源
Docker 官方中国区:https://registry.docker-cn.com 网易:http://hub-mirror.c.163.com 中国科技大学:https://docker.mirrors.ustc.edu.cn 阿里云:https://y0qd3iq.mirror.aliyuncs.com
向
/etc/docker/daemon.json
文件中增加如下内容{ "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"] }
这里我指定的是阿里云,可以指定上面四个地址中的任何一个
-
重启docker服务,
service docker restart
-
通过命令查看是否生效,
docker info|grep Mirrors -A 1
, 若成功,则输出Registry Mirrors: https://y0qd3iq.mirror.aliyuncs.com/
然后在docker pull 就会很快了