Docker安装
附:Docker教程
一 卸载docker
建议安装docker官方安装包
ubuntu 默认安装docker,但是版本可能较老或者可能默认安装了snap 的docker,而不是通过docker官方安装包或者apt安装的,这种情况restart docker会报错:
Failed to restart docker.service: Unit docker.service not found.
1. snap卸载docker
- 可以通过命令查看snap安装的包:
snap list
-
卸载snap安装的docker
snap卸载docker命令:
sudo snap remove docker
2. apt卸载docker
apt-get remove docker docker-engine docker.io containerd runc
二 安装docker
1. 方式一
Ubuntu命令一键执行安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意: 需要等待一段时间
2. 方式二 apt安装
安装前提依赖
apt update apt-get install ca-certificates curl gnupg lsb-release
安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装新版本
apt-get install docker-ce docker-ce-cli containerd.io
三 配置
1 添加docker用户组
groupadd docker
2 启动docker
systemctl start docker
3 docker换源
# 修改 /etc/docker/daemon.json (如果该文件不存在,则创建) { "registry-mirrors": [ "https://hub-mirror.c.163.com" ] }
4 必要工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
5 配置 docker
# 添加 docker 配置 /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "registry-mirrors": ["docker镜像仓库国内加速"] }
6 重启 docker
service docker restart
四 常见错误
安装完成后,可以把当前用户加入到docker分组中,这样后续运行docker命令可以不加sudo。
#添加当前用户到docker用户组 #更新用户组 sudo usermod -aG docker $USER newgrp docker
报错:执行docker ps时提示"dial unix /var/run/docker.sock: connect: permission denied"如何处理?
将当前用户加入docker组, ${USER} 添加的用户名
sudo usermod -aG docker ${USER}
修改/var/run/docker.sock的权限
sudo chmod 666 /var/run/docker.sock
报错: usermod: group 'docker' does not exist
这是因为在安装docker的使用如果使用npm install来安装,它是不会给你创建docker的group的,所以我们需要自己创建一个,
sudo groupadd docker
然后再执行添加用户操作就可以成功了,最后重启docker,
sudo usermod -aG docker ${USER} sudo systemctl restart docker
五 重要提示
安装docker后,pull的镜像文件默认保存在/var/lib/docker中,如果根目录/或者/var目录挂载容量较小的话,需要修改docker配置文件:
sudo vi /lib/systemd/system/docker.service
修改:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
为:
ExecStart=/usr/bin/dockerd --graph /home/docker -H fd:// --containerd=/run/containerd/containerd.sock
其中,/home/docker是自定义的docker镜像文件保存目录,将源目录的文件mv到新目录,并重启docker服务:
sudo mv /var/lib/docker /home
sudo systemctl daemon-reload
sudo systemctl restart docker