Created
February 12, 2019 08:21
-
-
Save kingspp/9aaccc8c4e0191abd777eb4b2a7f22c1 to your computer and use it in GitHub Desktop.
Docker Swam with NVidia Support
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Remove and Install nvidia-docker2 | |
#======================================================================================================================================== | |
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers | |
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f | |
sudo apt-get purge -y nvidia-docker | |
# Add the package repositories | |
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ | |
sudo apt-key add - | |
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) | |
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 | |
# Install nvidia-docker2 and reload the Docker daemon configuration | |
sudo apt-get install -y nvidia-docker2 | |
sudo pkill -SIGHUP dockerd | |
# Test nvidia-smi with the latest official CUDA image | |
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi | |
sudo nvidia-docker version | |
#---------------------------------------------------------------------------------------------------------------------------------------- | |
# Configure GPU visibility | |
#======================================================================================================================================== | |
export GPU_ID=`nvidia-smi -a | grep UUID | awk '{print substr($4,0,12)}'` | |
sudo mkdir -p /etc/systemd/system/docker.service.d | |
cat <<EOF | sudo tee --append /etc/systemd/system/docker.service.d/override.conf | |
[Service] | |
ExecStart= | |
ExecStart=/usr/bin/dockerd -H fdd:// --default-runtime=nvidia --node-generic-resource gpu=${GPU_ID} | |
EOF | |
sudo sed -i '1iswarm-resource = "DOCKER_RESOURCE_GPU"' /etc/nvidia-container-runtime/config.toml | |
sudo systemctl daemon-reload | |
sudo systemctl start docker | |
#---------------------------------------------------------------------------------------------------------------------------------------- | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment