Pengenalan tangan kepada bekas Docker

Pengenalan tangan kepada bekas Docker

Populariti Docker meroket sejak pengenalannya pada tahun 2013. Syarikat dan individu kini menggunakan atau merancang untuk menggunakannya sama ada di premis atau di awan. Fleksibiliti Docker merayu kepada pemaju, pentadbir sistem, dan pengurusan.

Artikel ini menunjukkan bagaimana untuk memulakan dengan Docker, menunjukkan arahan asas untuk membawa anda ke dalam kereta kontena.

Dalam tutorial ini anda akan belajar:

  • Apa itu Docker dan bagaimana ia digunakan.
  • Cara Memasang Docker di Linux.
  • Cara menjalankan bekas Docker.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana taburan Linux
Perisian Docker
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Konsep Docker Asas

Platform virtualisasi tradisional, seperti maya dan vmware, abstrak keseluruhan komputer, yang bertujuan untuk mengasingkan Tuan rumah dan tetamu sistem operasi, dan menghendaki sistem operasi keseluruhan dipasang di tetamu Mesin Maya (VM). Virtualisasi Docker mengambil pendekatan yang berbeza - ia hanya abstrak sistem pengendalian, yang bermaksud bahawa tuan rumah dan tetamu berkongsi perkara yang sama kernel.

Kelebihannya adalah tetamu (Dipanggil bekas) tidak perlu membungkus sistem operasi keseluruhan, apa yang menjadikan mereka ringan - saiz kecil dan sangat cepat untuk boot. Di samping.

Kelemahannya adalah bahawa tidak mungkin untuk menjadi tuan rumah tetamu Windows pada tuan rumah Linux, sebagai contoh, dan semua tetamu berkongsi sumber (CPU, RAM, dan Disk) pada tuan rumah, yang bermaksud bahawa bekas yang tidak bersalah boleh membawa seluruh pelayan ke bawah. Pastinya Docker tidak berhasrat untuk mengganti virtualisasi tradisional, yang masih mempunyai banyak senario yang sah. Ia hanya menyediakan satu lagi cara untuk mendapatkan pengasingan aplikasi semasa mengurangkan kebergantungan perpustakaan, tanpa kehilangan prestasi.

Docker membolehkan anda melancarkan bekas, yang menjalankan kejadian imej. Imej mengandungi cakera dengan semua kebergantungan perpustakaan yang diperlukan untuk melaksanakan aplikasi, sementara bekas mengandungi konteks pelaksanaan. Terdapat banyak bekas imej yang sama yang dilaksanakan pada masa yang sama, masing -masing dipisahkan dari yang lain.

Terdapat cadangan bahawa bekas Docker melaksanakan satu aplikasi sahaja, yang sering disalahtafsirkan untuk "menjalankan hanya satu proses". Tidak ada masalah untuk menjalankan lebih dari satu proses dalam bekas, selagi mereka tergolong dalam aplikasi yang sama. Permohonan yang kompleks mungkin, bagaimanapun, memerlukan pelaksanaan pelbagai bekas, seperti, sebagai contoh, satu untuk webserver (Apache, nginx), satu untuk aplikasi (PHP-FPM), dan satu untuk pangkalan data (MySQL, PostgreSQL, MongoDB ). Bekas -bekas tersebut boleh dilaksanakan dengan tuan rumah yang sama atau yang berbeza. Bekas di tuan rumah yang sama berkomunikasi melalui rangkaian maya yang diuruskan oleh Docker.



Imej Docker diambil dari repositori yang dinamakan Pendaftaran dan di -cache secara tempatan. Sekiranya pendaftaran tidak ditentukan, Docker akan cuba mencari imej di repositori lalai, yang dipanggil Hab Docker. Hab Docker mengandungi kuantiti besar imej yang siap digunakan oleh syarikat dan individu - dan anda juga boleh menerbitkan imej anda. Selain itu, ada juga Kedai Docker, di mana syarikat boleh menawarkan imej yang dikendalikan secara profesional dari perisian mereka. Disarankan anda meluangkan sedikit masa melayari dan mempelajari bagaimana repositori tersebut berfungsi.

Cukup berkata, mari pasang Docker dan pelajari beberapa arahan asas.

Memasang Docker di Linux

Ubuntu

Di Ubuntu Bionic Beaver 18.04, setelah dipasang Docker adalah mudah.

# Apt Pasang Docker.io 

Debian

Sekiranya anda menjalankan ujian Debian atau tidak stabil, arahan di atas juga akan berfungsi. Untuk Debian Stable (Stretch), lawati enjin Docker kami di Panduan Pemasangan Debian 9 Stretch Linux.

Centos

Di Centos 1804, itu satu yum perintah.

# yum pasang docker 

Fedora

Di Fedora 28 ia juga bersedia dipasang dengan satu DNF perintah.

# DNF Pasang Docker 

Selepas pemasangan Docker

Sebaik sahaja ia dipasang, anda boleh menyemak perkhidmatan Docker sedang berjalan.

# status docker perkhidmatan 

Sekiranya tidak, maka mulakannya.

# Docker Service bermula 

Sebaik sahaja perkhidmatan berjalan, anda boleh menyemak sama ada terdapat bekas yang berjalan.

# Docker PS 

Sekiranya anda tidak mahu menaip sudo Untuk berinteraksi dengan perkhidmatan Docker, tambahkan pengguna anda ke kumpulan Docker. Anda perlu log masuk lagi untuk membuat perubahan berkuat kuasa.

# usermod -a -g nama pengguna docker 

Selepas log masuk, periksa anda berada di Docker Group

$ kumpulan roger adm cdrom sudo dip plugdev lpadmin sambashare Docker 


Sekarang anda tidak memerlukan sudo untuk berinteraksi dengan enjin docker.

Menjalankan bekas Docker

Mari laksanakan a Hai dunia bekas.

$ Docker Run Hello-World Tidak dapat mencari imej 'Hello-World: Terkini' terkini tempatan: menarik dari perpustakaan/hello-world d1725b59e92d: pull lengkap Digest: sha256: 0add3ace90ecb4adbf777777! Mesej ini menunjukkan bahawa pemasangan anda nampaknya berfungsi dengan betul. Untuk menjana mesej ini, Docker mengambil langkah berikut: 1. Pelanggan Docker menghubungi daemon docker. 2. Daemon Docker menarik imej "Hello-World" dari Hub Docker. (AMD64) 3. The Docker Daemon mencipta bekas baru dari imej itu yang menjalankan executable yang menghasilkan output yang sedang anda baca. 4. Daemon Docker mengalir output itu kepada pelanggan Docker, yang menghantarnya ke terminal anda. Untuk mencuba sesuatu yang lebih bercita -cita tinggi, anda boleh menjalankan bekas Ubuntu dengan: $ Docker Run -IT Ubuntu Bash Share Images, mengautomasikan aliran kerja, dan banyak lagi dengan ID Docker percuma: https: // hub.Docker.com/Untuk lebih banyak contoh dan idea, lawati: https: // docs.Docker.com/get-started/ 
Salinan

Perintah itu sangat mudah, tetapi banyak perkara berlaku. Pertama, enjin Docker menyedari imej yang diminta tidak berada di cache tempatan (baris 2). Kemudian gambar ditarik dari pendaftaran Docker dan disimpan secara tempatan (baris 3). Akhirnya, bekas dibuat, dilaksanakan (baris 8) dan ditamatkan. Sekiranya anda mencuba lagi, anda akan melihat pelaksanaannya lebih cepat sejak kedua -duanya, imej dan bekas, di -cache. Sekarang periksa imej yang disimpan secara tempatan.

$ Docker Images Repository Tag Id Id dicipta saiz hello-world terkini 4AB4C602AA5E 2 minggu yang lalu 1.84KB 
Salinan

Perhatikan bahawa Hai dunia gambar adalah minimum, dengan hanya 1.Ukuran 84 kb. Ini menggambarkan bahawa banyak sistem operasi tuan rumah digunakan dan imej hanya mengandungi kebergantungan aplikasi.

Anda boleh mengeluarkan gambar ini.

$ Docker Images RM Hello-World $ Docker Images 

Sekarang mari kita buat sesuatu yang lebih bercita -cita tinggi: gambar web tarik dan apache dan jalankan bekas.

$ Docker Pull Httpd Menggunakan Tag Lalai: Terkini Terkini: Menarik Dari Perpustakaan/Httpd F189DB1B88B3: Tarik Lengkap BA2D31D4E2E7: Tarik Lengkap 23A65F5E3746: Tarik Lengkap 5E8ECCBD4BC6: Tarik Lengkap 4 8631904C6E92918B6C7DD82B72512714E7FBC3F1A1ACE2DE17CB2746C401B8FB Status.84KB HTTPD terkini D595A4011EA3 6 minggu yang lalu 178MB 
Salinan

Kemudian anda menjalankan bekas dari gambar ini.

$ docker run -d -p 8000: 80 httpd dd703b1590a91bdc10488b48798e42ddecd1c6519324a613f4b5563c21874a98.0.0.0: 8000-> 80/TCP Cranky_Torvalds 
Salinan

Dalam bentuk yang paling mudah, arahannya Docker Run Httpd, Tetapi bekas itu akan dihentikan sebaik selepas Apache berjalan, dan tidak ada pelabuhan yang akan didedahkan. The -d pilihan (lepaskan) diperlukan supaya bekas tetap berjalan di latar belakang.

The -p 8000: 80 Pilihan adalah pemetaan port 80 bekas ke port 8000 di tuan rumah, menjadikan webserver tersedia di rangkaian. Secara lalai, pelabuhan kontena tidak terdedah kepada tuan rumah. Sekarang, anda boleh menunjuk penyemak imbas web http: // localhost: 8000 dan lihat halaman ujian Apache.



Halaman lalai apache yang menunjukkan ia berfungsi

Ok, tetapi bagaimana menukar laman web? Kita perlu menghubungkan folder dari tuan rumah ke dalam bekas /usr/local/apache2/htdocs/ Direktori (kita akan lihat kemudian bahawa imej Apache dibina dari Jessy Debian, tanpa mengira rasa Linux tuan rumah anda). Hentikan bekas dan jalankan lagi.

$ docker ps $ docker stop cranky_torvalds $ echo "My Webpage"> Index.html $ docker run -d -p 8000: 80 -v "$ pwd":/usr/local/apache2/htdocs/httpd 
Salinan

Kami mencipta indeks.html fail dalam direktori semasa di tuan rumah dan memetakan direktori ini di dalam htdocs direktori bekas dengan -v suis. Sekarang menyegarkan penyemak imbas web.

Indeks.html

Sekarang topping: Eksperimen Mengedit The indeks.html fail di hos dan menyegarkan penyemak imbas web, tanpa mengubah keadaan bekas. Ya, apabila fail diedit, atau fail baru ditambahkan ke direktori semasa, ia disediakan di dalam bekas kerana -v pemetaan.

Buat fail lain dan akses di penyemak imbas.

$ echo "halaman kedua"> index2.html 


Indeks2.html

Apabila anda selesai, hentikan pelaksanaan bekas.

$ docker berhenti marah_poincare 

Perhatikan bahawa sekarang anda mempunyai webserver yang sedia untuk dilaksanakan setiap kali anda memerlukannya, dan anda tidak menyentuh sebarang fail konfigurasi dalam sistem operasi anda. Semuanya terkandung dalam imej Apache yang di -cache oleh Docker. Selain itu, anda boleh memuat turun gambar dan memulakan bekas di komputer lain.

Kesimpulan

Artikel ini memperkenalkan konsep docker utama dan beberapa arahan asas. Saya harap anda memahami manfaatnya dan melihat bahawa, apabila konsep difahami, ia tidak rumit untuk menggunakan Docker. Artikel masa depan akan membentangkan ciri -ciri dan kes penggunaan lain.

Lebih banyak dalam siri artikel Docker ini

  • Cara Berinteraksi dengan Bekas Docker
  • Cara menyesuaikan gambar Docker dengan Dockerfiles

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Menguasai Gelung Skrip Bash
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Distro linux terbaik untuk pemaju
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Muat turun linux
  • Cara Dual Boot Kali Linux dan Windows 10