docker和nvidia-docker安装与使用过程中遇到的问题

问题1:
执行命令"sudo docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi"测试nvidia-docker是否能启动时,报错
"docker: Error response from daemon: Unknown runtime specified nvidia."

解决办法(将nvidia容器配置到docker中):
#Systemd drop-in file
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
#sudo systemctl daemon-reload
sudo service docker restart

#Daemon configuration file
sudo tee /etc/docker/daemon.json <<EOF
{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
EOF
sudo pkill -SIGHUP dockerd

问题2:
将宿主机中的可执行程序以及依赖的opencv库拷贝到docker容器中,并调用opencv的读写视频接口时报错"GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed",这是由于在宿主机中编译opencv时打开了gstreamer选项,而docker中没有安装gstreamer

解决办法:
(1)重新编译opencv,在执行cmake时,添加WITH_GSTREAMER=OFF选项,再将新生成的opencv库拷贝到容器中使用;(推荐)
(2)在容器中安装gstreamer,即在Dockerfile中添加"RUN apt-get update && apt-get install -y gstreamer1.0-* libgstreamer*"或者直接进入容器中执行apt-get update && apt-get install -y gstreamer1.0-* libgstreamer*来安装gstreamer;(不推荐)

问题3:
在容器中出现中文乱码

解决办法:

在Dockerfile中添加"ENV LANG C.UTF-8"或者进入容器中,
(1)执行locate命令查看系统使用的编码;
(2)再执行locale -a命令查看系统自带了哪些字符集,一般就是以下三种
C
C.UTF-8
POSIX
(3)然后vi /etc/profile,在文件最后添加export LANG="C.UTF-8",再执行source /etc/profile使配置生效;

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值