Docker编译镜像及运行容器过程中,常见BUG

001

  • Problem
    在编译Linux内核过程中,执行sudo apt-get update指令时,出现以下问题:
    The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32
  • Solution
    这是因为更换三方源没有对应的Key。直接执行如下命令,比如我没有 3B4FE6ACC0B21F32,就需要执行
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

002

  • Problem
    Docker环境里已经安装opencv-python,但运行import cv2时,出现以下错误:
    ImportError: libGL.so.1: cannot open shared object file: No such file or directory
  • Solution
    出现这个错误,是因为之前docker里安装的opencv无法使用。我之前是用这条命令安装的: pip3 install opencv-python,这条命令安装的opencv在本地的环境中可以使用,但无法在docker里使用。根据经验,有以下两种解决方案:
    1)一般来说,是镜像Linux内核中缺少了libopencv-dev环境,可以先行安装该环境后再编译镜像。
sudo apt-get install -y libopencv-dev

但是,当安装libopencv-dev环境过程中再次出现无法解决的问题时,可尝试安装opencv-python-headless包;
2)可以先把之前用上面命令安装的opencv删除,然后用这条命令安装opencv-python-headless

pip3 uninstall opencv-python
pip3 install opencv-python-headless

003

  • Problem
    想要在Docker容器中运行深度学习模型时,出现了来自daemon的错误响应:
    docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
  • Solution
    这很大可能是因为Ubuntu中没有安装nvidia-docker2,按照以下指令在Ubuntu机器上安装即可
# 设置变量
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
# 安装公钥
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
# 获取list
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 更新, 并安装nvidia-docker2
sudo apt-get update
sudo apt-get install -y nvidia-docker2
# 重启
sudo systemctl restart docker
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容