Buruh pelabuhan Membuat aplikasi kemasan disebut wadah. Setiap wadah menyediakan lingkungan yang terisolasi mirip dengan a mesin virtual (Vm). Tidak seperti VMS, Wadah Docker Jangan menjalankan sistem operasi penuh . Mereka berbagi kernel tuan rumah Anda dan virtualisasi pada tingkat perangkat lunak.
Debatan Dasar-dasar
Docker telah menjadi alat standar untuk pengembang perangkat lunak dan administrator sistem. Ini cara yang rapi untuk meluncurkan aplikasi dengan cepat tanpa memengaruhi sisa sistem Anda. Anda dapat memutar layanan baru dengan satu
Docker Run.
memerintah.
Wadah merangkum semua yang diperlukan untuk menjalankan aplikasi, dari dependensi paket OS ke kode sumber Anda sendiri. Anda mendefinisikan langkah-langkah pembuatan wadah sebagai instruksi dalam a
DockerFile.
. Docker menggunakan DockerFile untuk membangun sebuah
gambar
.
Gambar mendefinisikan perangkat lunak yang tersedia dalam wadah. Ini setara secara longgar untuk memulai VM dengan sistem operasi ISO. Jika Anda membuat gambar, setiap Pengguna Docker akan dapat meluncurkan aplikasi Anda dengan
Docker Run.
.
Bagaimana cara kerja Docker?
Wadah memanfaatkan fitur kernel sistem operasi untuk menyediakan lingkungan yang divirinkan sebagian. Dimungkinkan untuk membuat wadah dari awal dengan perintah seperti
chroot.
. Ini memulai proses dengan direktori root yang ditentukan alih-alih root sistem. Tetapi menggunakan fitur kernel secara langsung adalah fiddly, tidak aman, dan rawan kesalahan.
Docker adalah solusi lengkap untuk produksi, distribusi, dan penggunaan kontainer. Rilis Docker Modern terdiri dari Beberapa komponen independen . Pertama, ada Docker CLI , yang mana Anda berinteraksi dengan terminal Anda. CLI mengirimkan perintah ke a Docker Daemon. . Ini dapat berjalan secara lokal atau Di host jarak jauh . Daemon bertanggung jawab untuk mengelola wadah dan gambar yang mereka buat.
Komponen akhir disebut Kontainer Runtime. . Runtime meminta fitur kernel untuk benar-benar meluncurkan wadah. Docker kompatibel dengan runtime yang mematuhi Spesifikasi OCI. Standar terbuka ini memungkinkan interoperabilitas antara berbagai alat kontan.
Anda tidak perlu terlalu khawatir tentang pekerjaan batin Docker ketika Anda pertama kali memulai. Menginstal
buruh pelabuhan
Pada sistem Anda akan memberi Anda semua yang Anda butuhkan untuk membangun dan menjalankan kontainer.
Mengapa begitu banyak orang menggunakan Docker?
Wadah telah menjadi sangat populer karena mereka memecahkan banyak tantangan umum dalam pengembangan perangkat lunak. Kemampuan untuk kontainerisasi sekali dan berjalan di mana-mana mengurangi kesenjangan antara lingkungan pengembangan Anda dan server produksi Anda.
Menggunakan wadah memberi Anda keyakinan bahwa setiap lingkungan identik. Jika Anda memiliki anggota tim baru, mereka hanya perlu
Docker Run.
untuk mengatur instance pengembangan mereka sendiri. Saat Anda meluncurkan layanan Anda, Anda dapat menggunakan gambar Docker Anda untuk menyebarkan produksi. NS
LANGSUNG LINGKUNGAN
Akan persis akan mencocokkan contoh lokal Anda, menghindari skenario "berfungsi pada mesin saya".
Docker lebih nyaman daripada mesin virtual penuh. VMS adalah alat serba guna yang dirancang untuk mendukung setiap beban kerja yang mungkin. Sebaliknya, wadah ringan, mandiri, dan lebih cocok untuk membuang kasus penggunaan. Ketika Docker berbagi kernel host, wadah memiliki dampak yang dapat diabaikan pada kinerja sistem. Waktu peluncuran kontainer hampir instan, karena Anda hanya memulai proses, bukan seluruh sistem operasi.
Mulai
Docker tersedia di semua distribusi Linux yang populer. Ini juga berjalan di Windows dan MacOS. Ikuti Instruksi Pengaturan Docker untuk platform Anda untuk memperbaikinya dan berlari.
Anda dapat memeriksa bahwa instalasi Anda berfungsi dengan memulai wadah sederhana:
Docker menjalankan Hello-World
Ini akan memulai wadah baru dengan dasar
Halo Dunia
gambar. Gambar memancarkan beberapa output yang menjelaskan cara menggunakan Docker. Wadah kemudian keluar, menjatuhkan Anda kembali ke terminal Anda.
Membuat gambar.
Setelah Anda menjalankannya
Halo Dunia
, Anda siap membuat gambar buruh pelabuhan Anda sendiri. Seorang DockerFile menggambarkan cara menjalankan layanan Anda dengan
Menginstal perangkat lunak yang diperlukan
dan menyalin dalam file. Inilah contoh sederhana menggunakan Apache Web Server:
dari httpd: Terbaru Jalankan echo "loadmodule header_module modules / mod_headers.so" & gt; & gt; /usr/local/apache2/conf/httpd.conf.conf.conf.conf. Salin .htaccess /var/www/html/.htaccess. Salin index.html /var/www/html/index.html Salin CSS / / VAR / WWW / HTML / CSS
NS
DARI
Garis mendefinisikan gambar dasar. Dalam hal ini, kami mulai dari gambar Apache resmi. Docker menerapkan instruksi yang tersisa di DockerFile Anda di atas gambar dasar.
NS
LARI
Panggung menjalankan perintah dalam wadah. Ini bisa berupa perintah apa pun yang tersedia di lingkungan wadah. Kami Mengaktifkan
header.
Modul Apache, yang dapat digunakan oleh
.htaccess.
file untuk mengatur aturan perutean.
Garis-garis terakhir menyalin file HTML dan CSS di direktori kerja Anda ke dalam gambar kontainer. Gambar Anda sekarang berisi semua yang Anda butuhkan untuk menjalankan situs web Anda.
Sekarang, Anda dapat membangun gambar:
Docker Build -t My-Situs Web: v1.
Docker akan menggunakan DockerFile Anda untuk membuat gambar. Anda akan melihat output di terminal Anda saat Docker menjalankan setiap instruksi Anda.
NS
-T
dalam perintah
Tag gambar Anda
dengan nama yang diberikan (
situs web saya: v1
). Ini membuatnya lebih mudah untuk merujuk di masa depan. Tag memiliki dua komponen, dipisahkan oleh usus besar. Bagian pertama menetapkan nama gambar, sedangkan yang kedua biasanya menunjukkan versinya. Jika Anda menghilangkan usus besar, Docker akan default
untuk menggunakan
terbaru
sebagai versi tag.
NS
.
Di akhir perintah memberi tahu Docker untuk menggunakan DockerFile di direktori kerja lokal Anda. Ini juga
menetapkan konteks build
, memungkinkan Anda untuk menggunakan file dan folder di direktori kerja Anda dengan
SALINAN
instruksi di DockerFile Anda.
Setelah Anda membuat gambar Anda, Anda dapat memulai wadah menggunakan
Docker Run.
:
Docker Run -D -P 8080: 80 My-Situs Web: V1
Kami menggunakan beberapa bendera tambahan dengan
Docker Run.
di sini. NS
-D
Bendera membuat cli docker melepaskan dari wadah, memungkinkannya untuk berjalan di latar belakang. Pemetaan port didefinisikan dengan
-P
, jadi port 8080 pada peta host Anda ke port 80 di wadah. Anda harus melihat halaman web Anda jika Anda mengunjungi
localhost: 8080.
di browser Anda.
Gambar Docker terbentuk dari lapisan. Setiap instruksi di DockerFile Anda membuat layer baru. Anda dapat menggunakan fitur bangunan canggih referensi beberapa gambar dasar , Membuang lapisan perantara dari gambar sebelumnya.
Pendaftar gambar
Setelah Anda memiliki gambar, Anda dapat mendorongnya ke registri. Pendaftar menyediakan penyimpanan terpusat sehingga Anda dapat berbagi wadah dengan orang lain. Registri default adalah Docker Hub. .
Ketika Anda menjalankan perintah yang mereferensikan gambar, Docker pertama kali memeriksa apakah itu tersedia secara lokal. Jika tidak, itu akan mencoba menariknya dari Hub Docker. Anda dapat secara manual menarik gambar dengan
Docker Pull.
memerintah:
Docker Tarik httpd: Terbaru
Jika Anda ingin mempublikasikan gambar, buat a
Docker Hub.
Akun. Lari
Docker Login.
dan masukkan nama pengguna dan kata sandi Anda.
Selanjutnya, tandai gambar Anda menggunakan nama pengguna Hub Docker Anda:
Docker Tag My-Image: Docker-Hub-Hub-Nama / My-Image: Terbaru
Sekarang, Anda dapat mendorong gambar Anda:
Docker Push Docker-Hub-Username / My-Image: Terbaru
Pengguna lain akan dapat menarik gambar Anda dan memulai wadah dengannya.
Kamu bisa Jalankan registri Anda sendiri Jika Anda membutuhkan penyimpanan gambar pribadi. Beberapa layanan pihak ketiga juga Menawarkan pendaftaran Docker sebagai alternatif untuk Docker Hub.
Mengelola wadah Anda
Docker CLI memiliki beberapa perintah untuk memungkinkan Anda mengelola wadah yang sedang berjalan. Berikut adalah beberapa yang paling berguna untuk diketahui:
Daftar wadah.
Docker PS
menunjukkan kepada Anda semua wadah lari Anda. Menambahkan
-A
Bendera akan menunjukkan wadah berhenti juga.
Menghentikan dan memulai wadah
Untuk menghentikan wadah, jalankan
Docker menghentikan wadah saya
. Mengganti
wadah saya
dengan nama atau ID wadah. Anda bisa mendapatkan informasi ini dari
ps.
memerintah. Wadah yang dihentikan dihidupkan kembali dengan
Docker memulai wadah saya
.
Wadah biasanya dijalankan selama proses utama mereka tetap hidup.
Mulai ulang kebijakan
Kontrol apa yang terjadi ketika wadah berhenti atau host Anda restart. Lulus
- selalu selalu
ke
Docker Run.
untuk membuat wadah memulai kembali segera setelah berhenti.
Mendapatkan shell.
Kamu bisa
jalankan perintah di
sebuah wadah menggunakan
Docker Exec My-Container My-Command
. Ini berguna ketika Anda ingin memisahkan secara manual yang dapat dieksekusi yang terpisah dengan proses utama wadah.
Tambahkan
-dia
Bendera jika Anda membutuhkan akses interaktif. Ini memungkinkan Anda jatuh ke dalam shell dengan menjalankan
docker exec-it saya wadah sh
.
Monitoring Log.
Docker secara otomatis mengumpulkan output yang dipancarkan ke aliran input dan output standar wadah. NS
Docker Logs My-Container
Perintah akan menampilkan log wadah di dalam terminal Anda. NS
--mengikuti
Bendera mengatur aliran kontinu sehingga Anda dapat melihat log secara real time.
Membersihkan sumber ..
Wadah dan gambar lama dapat dengan cepat menumpuk di sistem Anda. Menggunakan
Docker RM My-Container
untuk menghapus wadah dengan ID atau nama.
Perintah untuk gambar adalah
Docker RMI My-Image: Terbaru
. Lulus ID gambar atau nama tag lengkap. Jika Anda menentukan tag, gambar tidak akan dihapus sampai tidak ada tag lagi yang ditugaskan. Jika tidak, tag yang diberikan akan dihapus tetapi tag lain gambar akan tetap dapat digunakan.
Pembersihan massal dimungkinkan menggunakan
Docker Prune.
memerintah
. Ini memberi Anda cara mudah untuk menghapus semua kontainer yang berhenti dan gambar yang berlebihan.
Manajemen grafis.
Jika terminal bukan hal Anda, Anda dapat menggunakan alat pihak ketiga untuk Siapkan antarmuka grafis untuk Docker . Dasbor web memungkinkan Anda memantau dan mengelola instalasi Anda dengan cepat. Mereka juga membantu Anda mengambil kendali jarak jauh pada wadah Anda.
Penyimpanan data persisten
Kontainer buruh pelabuhan secara default. Perubahan yang dilakukan pada sistem file wadah tidak akan bertahan setelah wadah berhenti. Itu tidak aman untuk
Jalankan segala bentuk sistem penyimpanan file
Dalam wadah dimulai dengan dasar
Docker Run.
memerintah.
Ada beberapa pendekatan berbeda untuk Mengelola Data Persisten . Yang paling umum adalah menggunakan volume buruh buruh. Volume adalah unit penyimpanan yang dipasang ke dalam sistem file kontainer. Setiap data dalam volume akan tetap utuh setelah wadah yang ditautkan berhenti, memungkinkan Anda menghubungkan wadah lain di masa depan.
Mempertahankan keamanan
Beban kerja yang berlabuh dapat lebih aman daripada rekan-rekan logam telanjang mereka, karena Docker menyediakan beberapa pemisahan antara sistem operasi dan layanan Anda. Meskipun demikian, Docker adalah masalah keamanan potensial, seperti halnya
biasanya berjalan sebagai
akar
dan dapat dieksploitasi untuk menjalankan perangkat lunak berbahaya.
Jika Anda hanya menjalankan Docker sebagai alat pengembangan, instalasi default umumnya aman digunakan. Server produksi dan mesin dengan soket daemon yang terbuka jaringan harus dikeraskan sebelum Anda tinggal.
Audit Instalasi Docker Anda untuk mengidentifikasi masalah keamanan potensial. Ada Alat otomatis tersedia Itu dapat membantu Anda menemukan kelemahan dan menyarankan resolusi. Anda juga bisa Pindai gambar kontainer individu untuk masalah yang dapat dieksploitasi dari dalam.
Bekerja dengan banyak wadah
NS
buruh pelabuhan
Perintah hanya berfungsi dengan satu wadah sekaligus. Anda sering ingin menggunakan kontainer secara agregat.
Docker menyusun
adalah alat yang memungkinkan Anda menentukan wadah Anda secara deklaratif dalam file YAML. Anda dapat memulai semuanya dengan satu perintah.
Ini sangat membantu ketika proyek Anda tergantung pada layanan lain, seperti backend web yang bergantung pada server database. Anda dapat menentukan kedua wadah di
Docker-Compose.yl.
dan manfaat dari manajemen yang efisien dengan
Jaringan otomatis
.
Ini sederhana
Docker-Compose.yl.
mengajukan:
Versi: "3"
jasa:
aplikasi:
Gambar: App-server: Terbaru
port:
- 8000: 80
Database:
Gambar: Database-server: Terbaru
Volume:
- Database-Data: / Data
Volume:
Data Basis Data:
Ini mendefinisikan dua kontainer (
aplikasi
dan
Database
). Volume dibuat untuk database. Ini dipasang ke
/data
dalam wadah. Port Server App 80 terkena 8000 pada host. Lari
Docker-Compose Up -D
Untuk memutar kedua layanan, termasuk jaringan dan volume.
Penggunaan Docker Compose memungkinkan Anda
Tulis Reusable.
Definisi kontainer yang dapat Anda bagikan dengan orang lain. Anda bisa melakukan
Docker-Compose.yl.
ke dalam kontrol versi Anda alih-alih memiliki pengembang menghafal
Docker Run.
perintah.
Ada pendekatan lain untuk menjalankan beberapa kontainer juga. Aplikasi Docker adalah Solusi yang muncul yang menyediakan tingkat abstraksi lain. Di tempat lain di ekosistem, Podman adalah alternatif Docker Itu memungkinkan Anda membuat "pod" wadah di terminal Anda.
Orkestrasi kontainer.
Docker biasanya tidak dijalankan sebagai produksi. Sekarang lebih umum menggunakan platform orkestrasi seperti Kubernnetes. atau mode buruh berlabuh. Alat-alat ini dirancang untuk ditangani beberapa replika kontainer, yang meningkatkan skalabilitas dan keandalan.
Docker hanya satu komponen dalam gerakan kontainerisasi yang lebih luas. Orkestrators.
memanfaatkan yang sama
Kontainer Runtime Technologies untuk menyediakan lingkungan yang lebih cocok untuk produksi. Menggunakan beberapa instance kontainer
memungkinkan untuk memperbarui
Serta distribusi di seluruh mesin, membuat penempatan Anda lebih tangguh untuk berubah dan pemadaman. Yang biasa
buruh pelabuhan
CLI menargetkan satu host dan bekerja dengan wadah individu.
Platform yang kuat untuk wadah
Docker memberi Anda semua yang Anda butuhkan untuk bekerja dengan wadah. Ini telah menjadi alat utama untuk pengembangan perangkat lunak dan administrasi sistem. Manfaat utama adalah peningkatan isolasi dan portabilitas untuk layanan individu.
Aku berkenalan dengan Docker membutuhkan pemahaman tentang kontainer dasar dan konsep gambar. Anda dapat menerapkan ini untuk membuat gambar khusus dan lingkungan yang sesuai dengan beban kerja Anda.