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

Installation

$ 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
  • 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