Docker allows you to package, distribute and run a piece of software, including everything it needs to run: code, runtime, tools, libraries – anything you can install on a server. This guarantees that it will run and behave the same on any environment.
We will be showcasing the following Docker tools and features: Docker Engine, Docker Registry, Docker Compose, Docker Machine, Docker Swarm, Docker Networking
Next to introducing you to these tools, Tom Verelst will also be covering the following topics: Containerisation, Immutable Infrastructure, Docker Orchestration, Continuous Integration with Docker
Presentation sources: https://github.com/tomverelst/docker-presentation
Youtube video: https://www.youtube.com/watch?v=heBI7oQvHZU
5. It feels like a
LIGHTWEIGHT VIRTUAL MACHINE
It has a shell (SSH, ...)
Has its own namespace
Has its own network interface
Run stuff as root
Services
Packages
But if it's not a VM, so what's the difference?
20. DOCKERFILE
Instructions to automate building of your image
Steps are cached for fast-reuse
FROM java:8
COPY target/application.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
21. BASIC DOCKER COMMANDS
# Build the image in the working directory
$ docker build -t myapp .
# Run the image we just built as a container
$ docker run --name mycontainer myapp
# Stop the container
$ docker stop mycontainer
# Start the container again
$ docker start mycontainer
22. MANAGE CONTAINERS AND IMAGES
# List running containers
$ docker ps
# List all containers, including stopped
$ docker ps -a
# List all images
$ docker images
# Remove an image
$ docker rmi myapp
23. PUSH DOCKER IMAGES TO THE REGISTRY
# Login to Docker Registry
$ docker login --username=tomverelst --email=tom.verelst@or
dina.be
# Push the image to the Docker Registry
$ docker push myapp