Docker杂项
...大约 1 分钟
用GPU运行docker容器
前置条件
- Nvidia显卡
- 安装nvidia-container-runtime
安装nvidia-container-runtime
添加Nvidia官方apt软件源(必须)
创建脚本文件nvidia-container-runtime-script.sh
sudo touch nvidia-container-runtime-script.sh
脚本内添加以下内容
# nvidia-container-runtime-script.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
运行脚本
sudo sh nvidia-container-runtime-script.sh
apt安装
sudo apt-get install nvidia-container-runtime
安装完成后验证一下,输入:
which nvidia-container-runtime
应当得到输出:
/usr/bin/nvidia-container-runtime
用法
在创建容器时添加--gpus all的参数,例如
docker run --gpus all image_name:tag_name
报错
docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
解决方案
安装nvidia-container-runtime
容器间通信
通过宿主机ip:port
只能依靠监听在暴露出的端口的进程来进行有限的通信。
通过 User-defined networks
通过以下命令创建自定义桥接网络,这样同一桥接网络中的容器就可以通过互相访问
docker network create network_name
在创建容器时,使用参数--network,如
docker run -d --network network_name --name container1 image_name:tag_name
docker run -d --network network_name --name container2 image_name:tag_name
这样两容器间就可以通过容器名的形式通信
如
docker exec -it container1 ping container2
Powered by Waline v3.2.1