Skip to content

Instantly share code, notes, and snippets.

@kevupton
Last active April 11, 2022 19:02
Show Gist options
  • Save kevupton/c963cd237ed8ad24b1140694fe867db2 to your computer and use it in GitHub Desktop.
Save kevupton/c963cd237ed8ad24b1140694fe867db2 to your computer and use it in GitHub Desktop.
User Data for initializing an EC2 using Ubuntu with Docker GPU
#!/bin/bash
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update -qq
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce -y
# 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
# Install official NVIDIA driver package
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update && sudo apt-get install -y --no-install-recommends linux-headers-generic dkms cuda-drivers
# Install nvidia-docker and nvidia-docker-plugin
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
# login to AWS
# docker login -u AWS -p YOU CAN GENERATE THIS WITH AWS
# pull the repository
docker pull YOUR_ID.dkr.ecr.us-east-1.amazonaws.com/YOUR_REPO:LATEST
# run the script
docker run --runtime=nvidia -d -it YOUR_ID.dkr.ecr.us-east-1.amazonaws.com/YOUR_REPO:TAG
@kevupton
Copy link
Author

You can insert this into AWS user-data field, and have it automatically run your GPU docker container

@kevupton
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment