Apa itu Docker: Sejarah Singkat dan Abstraksi Dasar

Pada 10 Agustus, kursus video tentang Docker dimulai di Slurm , di mana kami menganalisisnya secara lengkap - dari abstraksi dasar hingga parameter jaringan.



Pada artikel ini, kita akan berbicara tentang sejarah Docker dan abstraksi utamanya: Image, Cli, Dockerfile. Kuliah ini dirancang untuk pemula, jadi sepertinya tidak akan menarik bagi pengguna berpengalaman. Tidak akan ada darah, tidak ada usus buntu dan tidak ada penyelaman yang dalam. Dasar-dasar.





Apa itu Docker



Mari kita lihat definisi Docker dari Wikipedia.



Docker adalah perangkat lunak untuk mengotomatiskan penerapan dan pengelolaan aplikasi di lingkungan dalam kontainer.

Tidak ada yang jelas dari definisi ini. Yang dimaksud dengan "lingkungan yang mendukung penampungisasi" sangat tidak jelas. Untuk mengetahuinya, mari kita kembali ke masa lalu. Mari kita mulai dengan era yang secara konvensional saya sebut sebagai "era Monolitik".



Era monolitik



โ€” 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 :



  1. Docker Daemon โ€” Container Engine; .
  2. Docker CLI โ€” Docker.
  3. Dockerfile โ€” , .
  4. Image โ€” , .
  5. Container.
  6. 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, .




All Articles