Linux系统使用Docker常见问题

引言

这几天在ubuntu系统上配置docker的深度学习环境配麻了,遇到了各种各样的问题,但是有一些问题是共性的,在这里总结一下。


Desktop or Engine ?

docker安装官网中,我们发现docker有desktop和engine两种,到底安装哪一个?简单来说,desktop除了指令还包含了图形化界面,engine只能使用指令。我建议安装engine,毕竟是Linux系统,同时也更轻量。
在这里插入图片描述

非root用户使用docker指令权限不够问题

普通用户直接运行docker指令会遇到如下报错,这是因为普通用户没有读写Unix socket的权限。

Got permission denied while trying to connect to Docker daemon socket at unix: … connect: permission denied

安装好docker后,会自动生成一个docker用户组,docker守护进程启动的时候,会赋予docker用户组读写Unix socket的权限,那么只要将当前用户加入到docker用户组中就可以了,让root用户运行下列指令:

sudo gpasswd -a $USER docker   #将用户加入到docker用户组中
newgrp docker                  #更新用户组

docker数据存放位置

有的时候我们可能需要这些信息,比如卸载docker,镜像文件和容器文件需要我们手动去删除。

/var/lib/docker      # 镜像
/var/lib/containerd  # 容器

配置镜像加速

默认镜像源在国外,对docker版本大于 1.10.0 的用户,可以通过修改daemon配置文件/etc/docker/daemon.json来加速镜像:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-EOF
{
  "registry-mirrors": ["镜像源"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

调用本机GPU硬件

如果在容器中需要使用本机的GPU,那么会运行指令docker run --gpus all …,通常会遇到如下错误:

docker: Error response from daemon: could not select device driver … with capabilities: [[gpu]].

对此我们需要安装nvidia-container-runtime包,但是默认的软件源是没有这个包的,因此需要先添加nvidia的软件源,可以编写并运行如下脚本:

# nvidia-container-runtime.sh
sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

然后就可以安装nvidia-container-runtime包了:

sudo apt-get install nvidia-container-runtime
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 服务器使用 Docker 是一种常见的方式来部署和管理应用程序。Docker 是一个开源的容器化平台,可以将应用程序及其所有依赖项打包到一个独立的、可移植的容器。以下是使用 Docker 的一般步骤: 1. 安装 Docker:在 Linux 服务器上安装 Docker,你可以根据你的系统选择相应的安装方法。一般来说,你可以通过在终端运行适当的命令或者按照官方文档提供的指南来进行安装。 2. 编写 Dockerfile:Dockerfile 是一个文本文件,用于定义 Docker 镜像的构建过程。你可以在 Dockerfile 指定基础镜像、安装软件包、复制文件等操作,以创建一个包含你的应用程序及其依赖项的镜像。 3. 构建镜像:使用 Dockerfile 构建镜像,你可以通过运行命令 `docker build -t <image_name> .` 来构建镜像。在这个命令,`-t` 参数用于指定镜像的名称,`.` 表示使用当前目录Dockerfile。 4. 运行容器:一旦你的镜像构建完成,你可以使用 `docker run` 命令来启动一个容器。你可以通过指定端口映射、环境变量设置等选项来配置容器的运行环境。 5. 管理容器:你可以使用 `docker ps` 命令来查看正在运行的容器,使用 `docker stop` 命令来停止容器的运行。还可以使用其他 Docker 命令来管理容器的生命周期。 通过使用 Docker,你可以更加方便地部署和管理应用程序,实现环境的一致性,并提高应用程序的可移植性和可扩展性。当然,这只是 Docker 的基本使用方法,还有很多高级功能和技巧可以进一步探索和利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值