Overview of Docker Commands
# Download/pull an image
$ docker pull <imagename>
# Run a container
$ docker run <imagename>
# Run a container with specific name
$ docker run --name <containername> <imagename>
# Run a container and bind port
$ docker run -p <hostport>:<containerport> <imagename>
# Run a container in detached mode
$ docker run -d <imagename>
# Run a container with environment variables
$ docker run -e <envkey>=<envvalue> <imagename>
# Run a container and bind volume
$ docker run -v <dockervolume>:<containerdirectory_absolutepath> <imagename>
# Run a container and bind host directory
$ docker run -v <hostdirectory_absolutepath>:<containerdirectory_absolutepath> <imagename>
# Stop a container
$ docker stop <containername or (partof)containerid>
# Remove a container
$ docker rm <containername or (partof)containerid>
## You can put multiple container names after each other with spaces in between to start/stop/remove multiple containers at once
# List running docker containers
$ docker ps
# List all docker containers
$ docker ps --all
$ docker ps -a
# Create a docker volume
$ docker volume create <volumename>
# Attach terminal to running container
$ docker exec -it <containername> /bin/bash
Docker-compose.yml example/template
Simple example:
# docker-compose.yml
services:
static_website:
image: dockersamples/static-site:latest
container_name: static_website
ports:
- "9090:80"
environment:
- AUTHOR=YourName
volumes:
- static_website_volume:/usr/share/nginx/html
restart: always
volumes:
static_website_volume:
- Zorg ervoor dat je met je terminal in de directory van je docker-compose file zit.
- Maak de container(s) aan en start ze met
$ docker-compose up -d
met de flag-d
voor detached mode. - Stop en remove de container(s) met
$ docker-compose down
.
Docker build file commands
# Start met de volgende base image
FROM <image>:<tag>
# Stel de user van de base image in
USER <username>
# Stel de working directory in
WORKDIR </path/to/workdir>
# Kopieer files van de host naar de base image
COPY <src> [<src> ...] <dest>
## (this form below is required for paths containing whitespace)
COPY ["<src>", ... "<dest>"]
# Run een commando in de base image
RUN <command>
RUN ["<executable>", "<param1>", "<param2>"] (exec form)
# Expose een port van de image (dit maakt deze port nog NIET beschikbaar in de host)
EXPOSE <port> [<port> ...]
# Definieer environment variables
ENV <key> <value>
ENV <key>=<value> [<key>=<value> ...]
# Entrypoint zodat container runt zoals een executable
ENTRYPOINT ["<executable>", "<param1>", "<param2>"] (exec form, preferred)
ENTRYPOINT <command> <param1> <param2> (shell form)
Build your own image
$ docker build . -t my_image_name
Build your own image inside a docker-compose file
version: '3.7'
services:
service_name:
container_name: container_name
build:
context: .
dockerfile: ./Dockerfile
...