Get started
with Docker
Docker vs. virtual machines
Docker engine
Docker architecture
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
Traditional APP | Twelve-factor app | |
---|---|---|
Time between deploys | Weeks | Hours |
Code authors vs code deployers | Different people | Same people |
Dev vs production environments | Divergent | As similar as possible |
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
12 Factor Apps
12factor.net
Set of 12 rules how to write modern applications.
I. Codebase
II. Dependencies
III. Config
IV. Backing services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processe
Where to start
- docs.docker.com - documentation
-
docker run --rm -dp 8002:80 docker/getting-started
start tutorial in docker at http://localhost:8002 - labs.play-with-docker.com - 4h of labs environment
- Dockerfile Best Practices (youtube from DockerCon 2019)
Installation
- Docker Desktop for Mac (macOS)
- Docker Desktop for Windows
- Docker for Linux (per distro)
$ docker --version
Docker version 19.03.8, build afacb8b
$ docker run hello-world
Basic Usage
System Wide Info
- docker version - print version
- docker info - system wide information
- docker system df - docker disk usage
- docker system prune - cleanup unused data
Docker Images
- docker pull <image> - download an image
- docker image ls - list all images
- docker image ls -q - quiet output, just IDs
- docker image ls <image> - list image versions
- docker image rm <image> - remove image
- docker image history <image> - show image history
- docker image inspect <image> - show image properties
Basic Usage
Containers
- docker ps - list containers
- docker ps -a - list all containers (also stopped)
- docker start <container>
- docker stop <container>
- docker restart <container>
- docker rm <container> - remove container
Docker Registry
Docker image name also contains location of it source
-
python
- Official images on Docker Hub (hub.docker.com)
-
solargis/backup
- User (custom) images on Docker Hub
-
docker-images.solargis.com/qgis2
- Image in my own registry
Remote Docker (over SSH)
export DOCKER_HOST=ssh://root@servername
docker version
docker info
Questions?
Docker
By profiprog
Docker
- 98