Docker commands
RunPod enables bring-your-own-container (BYOC) development. If you choose this workflow, you will be using Docker commands to build, run, and manage your containers.
For a Dockerless workflow, see RunPod projects.
The following is a reference sheet to some of the most commonly used Docker commands.
Login
Log in to a registry (like Docker Hub) from the CLI. This saves credentials locally.
docker login
docker login -u myusername
Images
docker push
- Uploads a container image to a registry like Docker Hub.
docker pull
- Downloads container images from a registry like Docker Hub.
docker images
- Lists container images that have been downloaded locally.
docker rmi
- Deletes/removes a Docker container image from the machine.
docker push myuser/myimage:v1 # Push custom image
docker pull someimage # Pull shared image
docker images # List downloaded images
docker rmi <image> # Remove/delete image
Containers
docker run
- Launches a new container from a Docker image.
docker ps
- Prints out a list of containers currently running.
docker logs
- Shows stdout/stderr logs for a specific container.
docker stop/rm
- Stops or totally removes a running container.
docker run # Start new container from image
docker ps # List running containers
docker logs # Print logs from container
docker stop # Stop running container
docker rm # Remove/delete container
Dockerfile
docker build
- Builds a Docker image by reading build instructions from a Dockerfile.
docker build # Build image from Dockerfile
docker build --platform=linux/amd64 # Build for specific architecture
For the purposes of using Docker with RunPod, you should ensure your build command uses the --platform=linux/amd64
flag to build for the correct architecture.
Volumes
When working with a Docker and RunPod, see how to attach a Network Volume.
docker volume create
- Creates a persisted and managed volume that can outlive containers.
docker run -v
- Mounts a volume into a specific container to allow persisting data past container lifecycle.
docker volume create # Create volume
docker run -v <vol>:/data # Mount volume into container
Network
docker network create
- Creates a custom virtual network for containers to communicate over.
docker run --network=<name>
- Connects a running container to a Docker user-defined network.
docker network create # Create user-defined network
docker run --network=<name> # Connect container
Execute
docker exec
- Execute a command in an already running container.
Useful for debugging/inspecting containers:
docker exec
docker exec mycontainer ls -l /etc # List files in container