Pengantar Hands-on untuk Docker Containers
- 2640
- 499
- Luis Baumbach
Popularitas Docker meroket sejak diperkenalkan pada tahun 2013. Perusahaan dan individu sekarang menggunakan atau berencana untuk menggunakannya baik di tempat atau di cloud. Fleksibilitas Docker menarik bagi pengembang, administrator sistem, dan manajemen.
Artikel ini menunjukkan cara memulai dengan Docker, menunjukkan perintah dasar untuk membawa Anda ke kereta musik wadah.
Dalam tutorial ini Anda akan belajar:
- Apa itu Docker dan bagaimana itu digunakan.
- Cara Menginstal Docker di Linux.
- Cara menjalankan wadah Docker.
Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | Distribusi linux apa pun |
Perangkat lunak | Buruh pelabuhan |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah. |
Konvensi | # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa |
Konsep Docker Dasar
Platform virtualisasi tradisional, seperti virtualbox dan vmware, abstrak seluruh komputer, bertujuan mengisolasi tuan rumah Dan tamu sistem operasi, dan mengharuskan seluruh sistem operasi dipasang di tamu Mesin Virtual (VM). Virtualisasi Docker mengambil pendekatan yang berbeda - itu hanya mengabstraksi sistem operasi, yang berarti bahwa host dan tamu berbagi hal yang sama inti.
Keuntungannya adalah itu tamu (ditelepon wadah) tidak perlu mengemas seluruh sistem operasi, apa yang membuatnya ringan - ukurannya kecil dan sangat cepat boot. Selain itu, dengan berinteraksi langsung dengan sistem operasi host, wadah Docker tidak menimbulkan hukuman kinerja virtualisasi tradisional, yang membutuhkan terjemahan panggilan sistem antara sistem operasi tamu dan host melalui driver yang abstrak perangkat keras virtual.
Kerugiannya adalah bahwa tidak mungkin untuk menjadi tuan rumah tamu Windows di host Linux, misalnya, dan bahwa semua tamu berbagi sumber daya (CPU, RAM, dan disk) pada host, yang berarti bahwa wadah yang buruk dapat menurunkan seluruh server server ke bawah. Sudah pasti bahwa Docker tidak bermaksud untuk menggantikan virtualisasi tradisional, yang masih memiliki banyak skenario yang valid. Ini hanya menyediakan cara lain untuk mendapatkan isolasi aplikasi saat mengurangi dependensi perpustakaan, tanpa kehilangan kinerja.
Docker memungkinkan Anda untuk meluncurkan wadah, yang menjalankan instance gambar-gambar. Gambar berisi disk dengan semua dependensi perpustakaan yang diperlukan untuk menjalankan aplikasi, sedangkan wadah berisi konteks eksekusi. Mungkin ada beberapa wadah dari gambar yang sama yang dieksekusi secara bersamaan, masing -masing dipisahkan dari yang lain.
Ada rekomendasi bahwa wadah Docker hanya menjalankan satu aplikasi, yang sering disalahtafsirkan untuk "menjalankan hanya satu proses". Tidak ada masalah untuk menjalankan lebih dari satu proses dalam sebuah wadah, selama mereka termasuk dalam aplikasi yang sama. Namun, aplikasi yang kompleks mungkin memerlukan pelaksanaan beberapa kontainer, seperti, misalnya, satu untuk server web (Apache, nginx), satu untuk aplikasi (php-fpm), dan satu untuk database (mysql, postgresql, mongoDB ). Wadah -wadah tersebut dapat dijalankan di host yang sama atau di berbagai. Kontainer di host yang sama berkomunikasi melalui jaringan virtual yang dikelola oleh Docker.
Gambar Docker diambil dari repositori bernama registri dan di -cache secara lokal. Jika registri tidak ditentukan, Docker akan mencoba menemukan gambar di repositori default, disebut Hub Docker. Hub Docker berisi sejumlah besar gambar yang siap digunakan disediakan oleh perusahaan dan individu - dan Anda dapat mempublikasikan gambar Anda juga. Selain itu, ada juga Toko Docker, di mana perusahaan dapat secara profesional menawarkan gambar yang dikuratori dari perangkat lunak mereka. Disarankan Anda meluangkan waktu menjelajah dan mempelajari cara kerja repositori itu.
Cukup berkata, mari kita instal Docker dan pelajari beberapa perintah dasar.
Menginstal Docker di Linux
Ubuntu
Di Ubuntu Bionic Beaver 18.04, pemasangan Docker langsung.
# App Install Docker.io
Debian
Jika Anda menjalankan pengujian debian atau tidak stabil, perintah di atas juga akan berfungsi. Untuk Debian Stable (Stretch), kunjungi mesin Docker kami di Debian 9 Stretch Linux Installation Guide.
Centos
Di Centos 1804, ini satu yum
memerintah.
# yum install docker
Fedora
Di fedora 28 juga siap dipasang dengan satu dnf
memerintah.
# DNF Instal Docker
Setelah pemasangan Docker
Setelah diinstal, Anda dapat memeriksa layanan Docker sedang berjalan.
Status # Service Docker
Jika tidak, maka mulai.
# Service Docker Mulai
Setelah layanan berjalan, Anda dapat memeriksa apakah ada wadah yang berjalan.
# Docker PS
Jika Anda tidak ingin mengetik sudo
Untuk berinteraksi dengan layanan Docker, cukup tambahkan pengguna Anda ke Docker Group. Anda perlu masuk lagi untuk membuat perubahan mulai berlaku.
# usermod -a -g nama pengguna Docker
Setelah login, periksa Anda berada di Group Docker
$ grup roger adm cdrom sudo dip plugdev lpadmin sambashare buruh pelabuhan
Sekarang Anda tidak perlu sudo
untuk berinteraksi dengan mesin Docker.
Menjalankan wadah Docker
Mari kita jalankan a Halo Dunia
wadah.
$ docker run hello-world tidak dapat menemukan gambar 'hello-world: terbaru' local terbaru: menarik dari perpustakaan/hello-world d1725b59e92d: tarik pencernaan lengkap: sha256: 0Add3ace90EcB4Adbf777e9aAcf18357729999999999! Pesan ini menunjukkan bahwa instalasi Anda tampaknya berfungsi dengan benar. Untuk menghasilkan pesan ini, Docker mengambil langkah -langkah berikut: 1. Klien Docker menghubungi Docker Daemon. 2. Daemon Docker menarik gambar "Hello-World" dari hub Docker. (AMD64) 3. Docker Daemon membuat wadah baru dari gambar yang menjalankan yang dapat dieksekusi yang menghasilkan output yang sedang Anda baca. 4. Daemon Docker mengalirkan output itu ke klien Docker, yang mengirimkannya ke terminal Anda. Untuk mencoba sesuatu yang lebih ambisius, Anda dapat menjalankan wadah ubuntu dengan: $ docker run -it ubuntu bash share gambar, mengotomatiskan alur kerja, dan lainnya dengan ID Docker gratis: https: // hub.buruh pelabuhan.com/untuk lebih banyak contoh dan ide, kunjungi: https: // docs.buruh pelabuhan.com/Get-started/
Menyalin Perintahnya sangat sederhana, tetapi banyak hal terjadi. Pertama, mesin Docker menyadari bahwa gambar yang diminta tidak ada dalam cache lokal (baris 2). Kemudian gambar ditarik dari registri Docker dan disimpan secara lokal (baris 3). Akhirnya, sebuah wadah dibuat, dieksekusi (baris 8) dan diakhiri. Jika Anda mencoba lagi, Anda akan melihat eksekusi jauh lebih cepat karena keduanya, gambar dan wadah, di -cache. Sekarang periksa gambar yang disimpan secara lokal.
$ docker gambar tag repositori ID dibuat ukuran hello-world terbaru 4ab4c602aa5e 2 minggu yang lalu 1.84KB
Menyalin Perhatikan bahwa Halo Dunia
Gambar minimal, dengan hanya 1.Ukuran 84 kb. Ini menggambarkan bahwa sebagian besar sistem operasi host digunakan dan bahwa gambar hanya berisi dependensi aplikasi.
Anda dapat menghapus gambar ini.
$ Docker Gambar RM Hello-World $ Docker Gambar
Sekarang mari kita lakukan sesuatu yang lebih ambisius: tarik dan gambar websver webserver dan jalankan wadah.
$ docker pull httpd Using default tag: latest latest: Pulling from library/httpd f189db1b88b3: Pull complete ba2d31d4e2e7: Pull complete 23a65f5e3746: Pull complete 5e8eccbd4bc6: Pull complete 4c145eec18d8: Pull complete v1'1c74ffd6a8a2: Pull complete 1421f0320e1b: Pull complete Digest: sha256: 8631904C6E92918B6C7DD82B72512714E7FBC3F1A1ACE2DE17CB2746C401B8FB STATUS: Diunduh gambar yang lebih baru untuk httpd 2Ber LEBIH DOCKER LARIN.84KB httpd terbaru D595A4011AE3 6 minggu lalu 178MB
Menyalin Kemudian Anda menjalankan wadah dari gambar ini.
$ docker run -d -p 8000: 80 httpd dd703b1590a91bdc10488b48798e42ddecd1c6519324a613f4b563c2 nocing "second" docker (~ docker container 9.0.0.0: 8000-> 80/tcp cranky_torvalds
Menyalin Dalam bentuknya yang paling sederhana, perintahnya Docker menjalankan httpd
, Tetapi wadah akan dihentikan tepat setelah Apache berjalan, dan tidak ada port yang akan diekspos. Itu -D
Opsi (lepaskan) diperlukan sehingga wadah tetap berjalan di latar belakang.
Itu -P 8000: 80
Opsi adalah pemetaan port 80 dari wadah ke port 8000 di host, membuat server web tersedia di jaringan. Secara default, port kontainer tidak terpapar ke host. Sekarang, Anda dapat mengarahkan browser web http: // localhost: 8000
dan lihat halaman tes Apache.
Halaman default Apache yang menunjukkan itu berfungsi
Oke, tapi bagaimana mengubah halaman web? Kita perlu menautkan folder dari host ke dalam wadah /USR/LOCAL/APACHE2/HTDOCS/
Direktori (kita akan melihat nanti bahwa gambar Apache dibangun dari Jessy Debian, terlepas dari rasa linux dari host Anda). Hentikan wadah dan jalankan lagi.
$ docker ps $ docker berhenti cranky_torvalds $ echo "halaman web saya"> indeks.html $ docker run -d -p 8000: 80 -v "$ pwd":/usr/local/apache2/htdocs/httpd
Menyalin Kami membuat indeks.html
file di direktori saat ini di host dan memetakan direktori ini di dalam htdocs
direktori wadah dengan -v
mengalihkan. Sekarang segarkan browser web.
Sekarang topping: Eksperimen mengedit indeks.html
file di host dan segarkan browser web, tanpa mengubah status wadah. Ya, setiap kali file diedit, atau file baru ditambahkan ke direktori saat ini, itu tersedia di dalam wadah karena -v
pemetaan.
Buat file lain dan akses di browser.
$ echo "halaman kedua"> index2.html
Indeks2.html
Setelah selesai, hentikan eksekusi wadah.
$ Docker berhenti Angry_Poincare
Perhatikan bahwa sekarang Anda memiliki server web yang siap dieksekusi kapan pun Anda membutuhkannya, dan Anda tidak menyentuh file konfigurasi apa pun di sistem operasi Anda. Semuanya dienkapsulasi dalam gambar Apache yang di -cache oleh Docker. Selain itu, Anda dapat mengunduh gambar dan memulai wadah di komputer lain.
Kesimpulan
Artikel ini memperkenalkan konsep Docker utama dan beberapa perintah dasar. Saya harap Anda memahami manfaatnya dan melihat bahwa, setelah konsep dipahami, tidak rumit untuk menggunakan Docker. Artikel di masa depan akan menyajikan fitur lain dan penggunaan kasus.
Lainnya dalam seri artikel Docker ini
- Cara berinteraksi dengan wadah Docker
- Cara Menyesuaikan Gambar Docker Dengan DockerFiles
Tutorial Linux Terkait:
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Menguasai loop skrip bash
- File Konfigurasi Linux: 30 Teratas Paling Penting
- Distro linux terbaik untuk pengembang
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- Hal -hal yang harus diinstal pada Ubuntu 22.04
- Unduh Linux
- Cara Dual Boot Kali Linux dan Windows 10
- « Cara Menginstal Browser Web Google Chrome di Ubuntu 18.10 Linux Cosmic Cuttlefish
- Cara mengubah ukuran font konsol tty di ubuntu 18.04 Server »