Ubuntu 20.04安装Docker及相关设置
在配置和部署深度学习训练环境时,往往会遇到conda创建的虚拟环境不好用的情况,这时使用Docker就可以解决很多麻烦。
本篇遵循Docker官网的安装指导进行操作。官网链接
首先说明,Docker Engine和Docker Desktop是不同的,这里使用常用的Engine。
1、安装前的准备工作
(1)确保系统满足安装条件
(2)如果之前安装了旧版本,需要卸载。
(3)支持的存储驱动
2、安装方法
- 多数情况下,推荐使用创建Docker仓库,从仓库进行安装,这样安装以及升级都方便。
- 还可以通过下载deb文件包,然后手动安装,以后也需要手动升级,没有网络的情况下可以使用该方法。
- 使用便捷脚本进行安装。
- 使用Ubuntu自身仓库安装,可能并不总是最新版本。
(1)第一次安装需要创建Docker仓库,然后从仓库安装和更新Docker。
- 更新apt 包索引,安装各种依赖包,从而允许apt通过HTTPS来使用仓库
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
- 添加Docker 官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 使用以下命令来创建稳定仓库,
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
(2)安装Docker Engine
- 更新apt包索引,安装最新版本的Docker Engine,containerd,Docker Compose。安装指定版本,请见官网(此处省略)。
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 验证Docker已经正确安装完成,运行hello-world镜像。输出以下信息即说明安装OK。
sudo docker run hello-world
Docker安装后自动运行,同时docker group也创建完成,但还没有用户被添加进去,现在需要用sudo运行docker命令。
查看已有镜像,sudo docker images
查看运行及停止的所有容器,sudo docker ps -a
查看docker版本,docker -v
3、安装完成后的相关设置
(1)作为非root用户管理Docker
Docker守护进程绑定在Unix socket上而不是TCP端口,默认情况下Unix socket由root所有,其他用户只能使用sudo来访问。如果不想每次都用sudo来运行docker命令,创建docker组,然后添加用户到组。
- 创建docker组
sudo groupadd docker
- 添加用户到docker组
sudo usermod -aG docker $USER
- 退出并再登陆以使组成员被刷新。在Linux上,也可以运行以下命令来使改变生效。
newgrp docker
- 验证不带sudo来运行docker命令
docker run hello-world
如果最初在添加用户到docker组之前运行了Docker的命令行命令,可能会报错,这说明你的 ~/.docker/ 路径未用正确许可来创建。
要修复该问题,可以移除 ~/.docker/ 路径(该路径会自动地重新创建,但任何自定义设定都会丢失),或者使用以下命令改变该路径的所有权和许可。
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Enjoy it!