Docker adalah platform yang membolehkan pemaju membina, menjalankan dan mengurus aplikasi dalam bekas. Struktur terasnya termasuk enjin Docker, pencerminan dan bekas, seni bina pelayan klien, dan mekanisme pengasingan berasaskan ruang nama. 1. Enjin Docker adalah komponen teras, termasuk daemon yang berjalan di latar belakang (bertanggungjawab untuk membina imej dan bekas yang berjalan), antara muka API REST, dan COMMAND LINE CLIENT (CLI). 2. Cermin adalah templat statik yang mengandungi aplikasi dan kebergantungannya. Bekas menjalankan contoh imej. Bekas berbilang boleh berasal dari imej yang sama, dan imej dibina melalui Dockerfile. 3. Docker menggunakan seni bina pelayan pelanggan, dan CLI berkomunikasi dengan daemon melalui API, dan juga boleh menyambung ke daemon terpencil. 4. Bekas menggunakan ruang nama kernel dan cgroup Linux untuk mencapai pengasingan proses dan batasan sumber, memastikan persekitaran operasi aplikasi yang cekap dan selamat.
Docker adalah platform yang membolehkan pemaju membina, menjalankan, dan mengurus aplikasi di dalam bekas - persekitaran ringan, terpencil yang berkongsi kernel sistem operasi tuan rumah tetapi mempunyai sistem fail, proses, dan antara muka rangkaian mereka sendiri. Ia menjadikan pembangunan lebih konsisten merentasi mesin dan memudahkan penggunaan.
Pada terasnya, Docker berfungsi dengan membungkus aplikasi dan semua kebergantungannya ke dalam imej kontena, yang kemudiannya boleh dijalankan pada mana -mana mesin yang dipasang Docker. Ini menghapuskan masalah biasa "ia berfungsi pada mesin saya" kerana segala keperluan aplikasi dibundel dalam imej.
Inilah cara Docker berstruktur:
1. Enjin Docker - Komponen Teras
Enjin Docker adalah jantung Docker. Ia berjalan pada sistem operasi tuan rumah dan menguruskan imej, bekas, rangkaian, dan penyimpanan. Apabila anda memasang Docker, anda pada dasarnya memasang enjin Docker.
- Ia terdiri daripada pelayan (daemon) yang berjalan di latar belakang dan mengendalikan tugas seperti membina imej dan bekas yang berjalan.
- Terdapat juga antara muka API REST yang membolehkan program berinteraksi dengan daemon.
- Dan klien antara muka baris (CLI) (
docker
Command), yang menghantar arahan ke daemon melalui API.
Oleh itu, apabila anda menaip docker run hello-world
, CLI bercakap dengan daemon, yang menarik imej dan memulakan bekas untuk anda.
2. Imej dan bekas - apa yang sebenarnya anda bekerjasama
Imej Docker adalah templat - gambar statik yang mengandungi aplikasi, perpustakaan, dan persekitaran runtime anda. Fikirkan ia seperti cetak biru atau resipi.
Bekas adalah contoh yang berjalan dari imej. Ia dinamik - apabila anda memulakan imej, ia menjadi bekas. Bekas berbilang boleh dibuat dari imej yang sama.
Contohnya:
- Satu gambar mungkin
nginx:latest
- Dari imej itu, anda boleh menjalankan dua bekas, masing -masing melayani kandungan yang sama tetapi mungkin di pelabuhan yang berbeza atau dengan konfigurasi yang berbeza
Imej dibina menggunakan DockerFile , fail teks dengan arahan seperti, FROM
COPY
dan CMD
. Setiap arahan mewujudkan lapisan baru dalam imej, dan lapisan ini cache untuk mempercepatkan membina.
3. Senibina Docker-Model Pelayan Pelanggan
Docker menggunakan seni bina pelanggan-pelayan :
- Pelanggan Docker adalah apa yang anda berinteraksi secara langsung - biasanya melalui CLI.
- The Docker Daemon (
dockerd
) melakukan mengangkat berat: Menguruskan imej, bekas, rangkaian, dan jilid. - Mereka berkomunikasi melalui API yang tenang, sama ada secara tempatan (melalui soket Unix) atau melalui rangkaian.
Persediaan ini bermakna anda juga boleh menunjukkan Docker CLI tempatan anda ke daemon docker jauh, yang membolehkan anda menguruskan bekas yang berjalan di mesin lain tanpa perlu SSH ke dalamnya setiap kali.
4. Pengasingan dan ruang nama - bagaimana bekas tetap terpisah
Bekas bukan mesin maya - mereka tidak mencontohi perkakasan. Sebaliknya, mereka bergantung pada ciri -ciri kernel Linux seperti ruang nama dan cgroups untuk mengasingkan proses.
- Ruang nama memberi bekas pandangan mereka sendiri tentang sistem - pokok proses berasingan, susunan rangkaian, ID pengguna, dll.
- Kumpulan kawalan (cgroup) had penggunaan sumber, seperti CPU atau memori, jadi satu bekas tidak kelaparan yang lain.
Terima kasih kepada teknologi ini, bekas adalah pantas dan cekap semasa masih selamat dan boleh diramal.
Itulah struktur asas Docker. Sebaik sahaja anda memahami bagaimana imej, bekas, dan enjin bekerja bersama -sama, menggunakan Docker menjadi kurang misteri. Ia bukan sihir - hanya menggunakan ciri -ciri OS yang sedia ada untuk memudahkan penghantaran aplikasi.
Atas ialah kandungan terperinci Apa itu Docker dan apakah seni binanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Untuk membangunkan aplikasi Web Python yang lengkap, ikuti langkah -langkah berikut: 1. Pilih rangka kerja yang sesuai, seperti Django atau Flask. 2. Mengintegrasikan pangkalan data dan menggunakan ORM seperti SQLalChemy. 3. Reka bentuk front-end dan gunakan Vue atau React. 4. Lakukan ujian, gunakan pytest atau unittest. 5. Menyebarkan aplikasi, gunakan Docker dan platform seperti Heroku atau AWS. Melalui langkah -langkah ini, aplikasi web yang kuat dan cekap boleh dibina.

Terdapat tiga cara untuk melihat maklumat proses di dalam bekas Docker: 1. Gunakan arahan DockerTop untuk menyenaraikan semua proses dalam bekas dan paparan PID, pengguna, arahan dan maklumat lain; 2. Gunakan DockerExec untuk memasukkan bekas, dan kemudian gunakan PS atau Perintah Top untuk melihat maklumat proses terperinci; 3. Gunakan arahan Dockerstats untuk memaparkan penggunaan sumber kontena dalam masa nyata, dan menggabungkan Dockertop untuk memahami sepenuhnya prestasi bekas.

Menggunakan aplikasi pytorch di Ubuntu boleh dilakukan dengan mengikuti langkah -langkah: 1. Pasang Python dan Pip terlebih dahulu, pastikan Python dan PIP sudah dipasang pada sistem anda. Anda boleh memasangnya menggunakan arahan berikut: SudoaptDateSudoaptinstallpython3python3-pip2. Buat persekitaran maya (pilihan) untuk mengasingkan persekitaran projek anda, disarankan untuk mewujudkan persekitaran maya: python3-mvenvmyenvsourcemyenv/bin/activateT

Menggunakan dan menala Jenkins pada Debian adalah proses yang melibatkan pelbagai langkah, termasuk pemasangan, konfigurasi, pengurusan pemalam, dan pengoptimuman prestasi. Berikut adalah panduan terperinci untuk membantu anda mencapai penggunaan Jenkins yang cekap. Memasang Jenkins terlebih dahulu, pastikan sistem anda mempunyai persekitaran Java yang dipasang. Jenkins memerlukan persekitaran runtime Java (JRE) untuk berjalan dengan betul. sudoaptpdatesudoaptinstallopenjdk-11-jdk Sahkan bahawa pemasangan Java berjaya: java-versi seterusnya, tambah j

Cara yang efisien untuk Batch menghentikan bekas Docker termasuk menggunakan arahan asas dan alat. 1. Gunakan arahan Dockerstop $ (Dockerps-Q) dan laraskan waktu tamat, seperti Dockerstop-T30 $ (Dockerps-Q). 2. Gunakan pilihan penapisan dockerps, seperti dockerstop $ (dockerps-q-filter "label = app = web"). 3. Gunakan DockerCompose Command Docker-Composedown. 4. Tulis skrip untuk menghentikan bekas dalam rangka, seperti menghentikan DB, aplikasi dan bekas web.

Terdapat dua cara untuk membandingkan perbezaan dalam versi imej Docker yang berbeza: 1. Gunakan arahan DockerDiff untuk melihat perubahan dalam sistem fail kontena; 2. Gunakan perintah dockerhistory untuk melihat perbezaan hierarki dalam bangunan imej. Kaedah ini membantu memahami dan mengoptimumkan versi imej.

Melalui teknologi kontena Docker, pemaju PHP boleh menggunakan PHPStorm untuk meningkatkan kecekapan pembangunan dan konsistensi alam sekitar. Langkah -langkah khusus termasuk: 1. Buat Dockerfile untuk menentukan persekitaran PHP; 2. Konfigurasikan sambungan Docker dalam phpStorm; 3. Buat fail DockerCompose untuk menentukan perkhidmatan; 4. Konfigurasikan penterjemah PHP jauh. Kelebihannya adalah konsistensi alam sekitar yang kuat, dan kelemahannya termasuk masa permulaan yang panjang dan debugging kompleks.

Sudah tentu, Java adalah perisian yang sangat penting. Java termasuk JRE dan JDK. JRE membolehkan program "ditulis sekaligus dan berjalan di mana -mana", sementara JDK menyediakan pengkompil dan alat pembangunan untuk meningkatkan kecekapan pembangunan.
