Em 10 de agosto, um curso de vĂdeo sobre Docker começou em Slurm , no qual analisamos por completo - de abstrações básicas a parâmetros de rede.
Neste artigo, falaremos sobre a história do Docker e suas principais abstrações: Image, Cli, Dockerfile. A palestra é destinada a iniciantes, portanto, é improvável que seja do interesse de usuários experientes. Não haverá sangue, apêndice e nenhum mergulho profundo. O básico.

O que Ă© Docker
Vamos dar uma olhada na definição de Docker da Wikipedia.
Docker é um software para automatizar a implantação e gerenciamento de aplicativos em ambientes em contêineres.
Nada está claro com esta definição. NĂŁo Ă© especialmente claro o que significa "ambientes habilitados para contĂŞiner". Para descobrir isso, vamos voltar ao passado. Vamos começar com a era que convencionalmente chamo de "Era MonolĂtica".
Era monolĂtica
— 2000-, , . . , . :
Pets — . , , , . : , .
: VMware, VirtualBox, Hyper-V, Qemu KVM . . , . , . — . — , , Nginx, Apache, MySQL. , . , . , .
OpenVZ, Systemd-nspawn, LXC. — LXC (Linux Containers).
LXC — Linux . LXC , .
LXC . ?

: , . - , .
.
, .

«» — , - . , .
, , . , Container Engine, . , , .
, , — Namespaces Control Groups.
Namespaces: PID, Networking, Mount User. , .
PID Namespace . , , PID Namespace, , PID 1. PID 1 — systemd init. , namespace, PID 1.
Networking Namespace / . Mount — . User — .
Control Groups: Memory, CPU, IOPS, Network — 12 . Cgroups («C-»).
Control Groups . Control Groups , - .
, : Capabilities, Copy-on-write .
Capabilities — , , . . , root , . : capabilities Time Capsule, . , .
Copy-on-write Docker, .
Docker Cgroups v2, Cgroups v1.
.
, . , :
- : OpenVZ , , , ;
- , . , , . .
, .
, :
- — .
- . .
- , — , .
- .
, pets vs cattle? , cattle — . — . 100 , 100 . - 2-3 . . : , . .
2014-2015 Docker — , .
Docker . Docker , , , .
Docker- , . Docker . , : , , . Docker . Docker- , , .
. - , Docker , Linux , . , « , Docker — , Linux ».
, , Docker , , .
— PID namespace. namespace - , PID 1. PID, namespace, . , Nginx, PID 1 (-). PID 12623. , .
— Cgroups. Cgroups , . , memory accounting: , , . , , , . , , Docker, .
. . , . Docker - , , , , , . - nf_conntrack, .
Docker
Docker :
- Docker Daemon — Container Engine; .
- Docker CLI — Docker.
- Dockerfile — , .
- Image — , .
- Container.
- Docker registry — .
:

Docker_host Docker daemon, . Client, : , , . Docker daemon registry . Docker- ( -), TCP .
.
Docker daemon () — , -: , , . « », .
Docker CLI — Docker, . , , .
:
docker ps — , Docker-.
docker images — , .
docker search <> — registry.
docker pull <> — registry .
docker build <</path/to/dir>> — .
docker run <> — .
docker rm <> — .
docker logs <> —
docker start/stop/restart <> —
, , 70% Docker .
Dockerfile — . — . .

Dockerfile: , — . , ( Dockerfile), Image.
, , . : « » — . « » — , . . Dockerfile - — "python" "main.py", - , — , .
Image — , . Docker ( deb rpm-), image — rpm-. yum install , , , . : , Docker registry ( yum, ), image SHA-256, .
Image Dockerfile. Dockerfile . .
Docker registry — Docker. , Docker — dockerhub. , Docker registry.
Container — , . Dockerfile , . , . — . , , Docker.
« — » PID Namespace. Namespace PID 1, , . : , , . Best Practices, .
: « Docker».
: , Kubernetes, Southbridge, .