1. swap问题
警告内容:
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
原因:
ubuntu默认未开启swap限制,需要手动开启
解决办法:
在 /etc/default/grub 中添加一行:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
更新grub
sudo update-grub
重启电脑后生效
sudo reboot
2. 使用--gpus all报错
报错内容:
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
原因:
没有配置好docker运行环境,需要下载 nvidia-container-toolkit
解决办法:
下载nvidia-container-toolkit
sudo apt-get upgrade
sudo apt-get install nvidia-container-toolkit
如果能直接下载,重启docker即可正常运行。
service docker restart
下载报错:
E: 无法定位软件包 nvidia-container-toolkit
解决方案:
添加对应的源再下载
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install nvidia-container-toolkit
service docker restart
3. 相同名字的docker已启动
报错内容:
想要启动docker时出现
docker: Error response from daemon: Conflict. The container name "/bundletrack" is already in use by container "ddafeaa891f073bfea9bc19e556be2548e28c142f4a6cd3f697d65698b84a0f4". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
原因:
上次使用该docker后未删除
解决办法:
docker ps 查看正在运行的docker
(base) tangzhe@tangzhe-2021:~/code/Tracking/BundleTrack/BundleTrack$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
可能会没有,输入 docker ps -a 查看所有的docker
(base) tangzhe@tangzhe-2021:~/code/Tracking/BundleTrack/BundleTrack$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71c405833d77 wenbowen123/lf-net-release-env:latest "/usr/bin/tini -- ba…" 6 days ago Exited (255) 45 hours ago lfnet
ddafeaa891f0 wenbowen123/bundletrack:latest "bash" 6 days ago Exited (255) 45 hours ago bundletrack
删除这两个docker : docker rm CONTAINER ID
docker rm 71c405833d77
docker rm ddafeaa891f0
4. docker 容器退出自动删除
问题:
关闭docker后,再启用docker会出现上面的问题。因为该docker只是被停用,但并没有删除。
解决办法:
关闭docker时自动删除,添加命令: --rm 如:
docker run -it --rm
* 如果做了这个设置就不存在上一个问题了