GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menginstal dan Menggunakan Docker di Ubuntu (Di Dunia Nyata)

Jika Anda mencari informasi tentang cara menginstal Docker di Ubuntu, Anda berada di tempat yang tepat. Tidak hanya itu, sebagai bonus, tutorial ini juga akan mengajarkan cara menjalankan perintah Docker dasar untuk menjalankan dan mengelola container.

Dengan menggunakan fitur-fitur praktis dari Visual Studio (VS) Code, Anda juga akan belajar cara meningkatkan keterampilan SSH Anda. Mari kita mulai!

Terkait: Seorang Windows di Dunia Linux:Kode VS dan SSH Jarak Jauh

Prasyarat

Jika Anda ingin mengikuti langkah demi langkah, dalam tutorial ini, pastikan Anda memiliki yang berikut:

  1. Instalasi baru Ubuntu Server LTS dengan SSH Diaktifkan (Panduan ini akan menggunakan Ubuntu Server LTS 20.04.1)
  2. Mesin Windows dengan VSCode diinstal (Panduan ini akan menggunakan Visual Studio Code 1.52.1)
  3. Ekstensi SSH resmi VSCode terpasang dan terhubung ke Instalasi LTS Server Ubuntu Anda

Menginstal Docker di Ubuntu

Mari kita mulai dengan menginstal Docker terlebih dahulu di Ubuntu. Pada titik ini, tutorial mengasumsikan bahwa Anda berada di komputer Windows lokal Anda dengan Kode VS terbuka terhubung ke Server Ubuntu Anda melalui SSH. Pelajari cara menyiapkan lingkungan praktis ini di artikel terbaru tentang penggunaan Kode VS dan SSH .

Pada contoh di bawah ini, VSCode terhubung dari jarak jauh ke Ubuntu dengan home folder (dalam hal ini, /home/homelab ) dibuka sebagai ruang kerja:

Proses sebenarnya untuk menginstal Docker di Server Ubuntu adalah dua perintah lagi. Ubuntu membuat Docker tersedia sebagai opsi penginstalan di manajer paket default yang dikirimkan bersama Ubuntu yang dikenal sebagai apt .

Di jendela terminal SSH dari VS Code, jalankan dua perintah berikut untuk menginstal Docker:

sudo apt update -y
sudo apt install docker.io -y

Selama instalasi Server Ubuntu, Anda mungkin telah ditawari opsi untuk menginstal Docker secara instan. Jika sudah, hapus dulu paket snap dengan menjalankan sudo snap remove docker

Anda dapat menonton instalasi buruh pelabuhan di animasi di bawah ini:

Ubuntu cukup baik untuk secara otomatis mengaktifkan dan mengatur layanan untuk memulai saat boot untuk Anda, jadi Anda siap untuk mulai menggunakan Docker!

Membuat dan Menjalankan Wadah Docker di Ubuntu

Sekarang setelah Anda menginstal Docker, apa yang dapat Anda lakukan dengannya? Mari kita mulai dengan membuat wadah Docker. Tutorial ini akan menyiapkan server web statis sebagai contoh yang baik dari wadah Docker. Di bagian ini, Anda akan:

  • Siapkan penampung baru dari Docker Hub Repositori Gambar untuk menjalankan layanan HTTP
  • Gunakan Pemetaan Port untuk memetakan port HTTP dalam wadah ke host Ubuntu Anda
  • Siapkan Bind Mounts untuk memetakan data penting dari dalam wadah ke host Ubuntu Anda
  • Siapkan kegigihan melalui boot ulang untuk penampung Anda

Jika salah satu langkah di atas terdengar membingungkan, jangan khawatir, kami akan membahas setiap langkah, satu per satu untuk membantu Anda memahami prosesnya.

Mengunduh Gambar Docker

Pertanyaan pertama yang harus Anda tanyakan adalah, dari mana wadah ini berasal? Mari kita lihat Docker Hub.

Sebagian besar Docker memahami repositori gambar . Alih-alih didistribusikan seperti paket, layanan di Docker didistribusikan sebagai Gambar Docker.

Gambar Docker adalah cuplikan perangkat lunak yang ingin didistribusikan oleh penerbit dan seluruh sistem pengarsipan! Ini analog dengan membuat gambar .wim Windows.

Pengambilan sistem file ini membuat Docker begitu populer:perangkat lunak ditangkap bersama dengan seluruh lingkungan operasi. Melakukannya menghilangkan masalah yang disebabkan oleh perbedaan antara lingkungan server.

Salah satu repositori paling populer (dan default) untuk gambar adalah Docker Hub juga dikenal sebagai repositori Docker resmi. Repositori gambar adalah tempat Anda dapat mengunduh ribuan gambar Docker yang telah dibuat sebelumnya untuk dijalankan sebagai wadah.

Karena tutorial ini menyiapkan server web statis, Anda perlu mengunduh gambar server web. Dua server web paling populer di luar sana adalah Apache httpd dan Nginx tetapi untuk sedikit mengubah keadaan dan berpotensi memperkenalkan Anda ke server web baru, mari gunakan yang disebut Caddy .

Caddy adalah server web yang terkenal dengan kesederhanaannya. Banyak konfigurasi server yang valid dapat digunakan menggunakan satu baris dalam file. Sederhana itu baik dan juga menjadi contoh dasar yang baik.

  1. Pertama, Anda harus menemukan gambar Docker. Di mesin Windows Anda, navigasikan ke https://hub.docker.com .
  2. Lakukan penelusuran untuk caddy di pojok kiri atas halaman. Anda akan melihat halaman yang mirip dengan berikut ini:

Manfaat (dan kelemahan) Docker Hub adalah siapa pun, bahkan Anda, dapat membuat dan mengunggah Gambar Docker ke situs.

Anda harus berhati-hati untuk memastikan bahwa gambar yang Anda pilih berasal dari sumber yang terpercaya. Siapa saja dapat menempatkan malware dalam gambar jika mereka memilih dan mengunggah versi mereka ke Docker Hub.

3. Perhatikan nama gambar. Pada screenshot di atas, namanya caddy tepat. Anda memerlukan nama ini untuk menentukan nama gambar di langkah selanjutnya.

Menjalankan Container dengan Docker di Ubuntu

Setelah Anda mengetahui nama gambar yang ingin Anda unduh, saatnya mengunduhnya dan membuat wadah darinya.

Memulai wadah dari gambar memerlukan satu perintah. Di terminal SSH Anda yang terhubung ke Server Ubuntu Anda, jalankan docker run berikut:perintah.

Perintah di bawah ini memeriksa caddy gambar pada mesin lokal. Jika tidak ada, itu mengunduh gambar dari Docker Hub, membuat wadah dan memulainya. Perintah di bawah ini menggunakan -p beralih untuk memetakan port 80 pendengar Server Ubuntu ke port 80 container. Fitur ini disebut pemetaan port.

sudo docker run -p 80:80 caddy

Kebanyakan Gambar Hub Docker mengikuti konvensi penamaan /. Namun, gambar yang dicap sebagai "resmi" oleh Docker tidak memiliki di depannya (seperti caddy di atas).

Menjalankan output perintah di atas seperti berikut, dengan informasi log caddy ditampilkan langsung di terminal:

Anda mungkin memperhatikan bahwa hampir semua perintah buruh pelabuhan diawali dengan sudo , untuk memaksa perintah dijalankan sebagai administrator. Secara default, layanan buruh pelabuhan berjalan sebagai root , dan semua perubahan yang Anda buat pada penampung atau gambar harus dilakukan sebagai administrator.

Dan… Anda sudah siap! Itu saja. Tidakkah Anda senang telah menginstal Docker di Ubuntu?

Sekarang navigasikan ke http:// di komputer Windows Anda dan Anda akan melihat halaman arahan untuk Caddy. Anda dapat melihatnya di bawah (IP panduan ini diganti dengan http://homelab-docker ):

kadi container sedang berjalan sekarang tetapi Anda mungkin telah melihat masalah. Menjalankan docker perintah mengambil alih baris perintah Anda. Anda tidak dapat menjalankan perintah lagi, dan jika sesi berakhir, container yang sedang berjalan akan berhenti. Mari selesaikan masalah itu dengan menjalankan penampung di latar belakang (juga dikenal sebagai melepaskan wadah).

Menjalankan Kontainer Docker di Latar Belakang

Anda sekarang memiliki wadah yang berjalan tetapi baris perintah Anda ditutup. Anda tidak dapat melakukan hal lain. Anda memerlukan cara yang lebih baik untuk memulai wadah dengan menjalankannya di latar belakang seperti layanan. Untuk melakukannya:

  1. Hentikan penampung saat ini dengan menekan control+c di baris perintah. Ini akan mengembalikan baris perintah Anda.
  2. Sekarang, jalankan kembali perintah yang sama seperti sebelumnya hanya dengan -d parameter kali ini seperti yang ditunjukkan di bawah ini. Anda akan melihat bahwa Docker akan mengembalikan ID penampung dan meneruskan baris perintah kembali kepada Anda.
sudo docker run -d -p 80:80 caddy

Mengelola Container Latar Belakang dengan Perintah Docker

Setelah Anda menjalankan satu atau lebih Docker latar belakang, Anda harus mengelolanya entah bagaimana. Docker memberi Anda beberapa perintah berbeda untuk melakukannya menggunakan docker container perintah.

  • sudo docker container list -a :Mencantumkan semua container (berjalan dan berhenti) dan statusnya
  • sudo docker container stop <name> :menghentikan wadah buruh pelabuhan dengan nama mereka (atau dengan ID mereka)
  • sudo docker container start <name> :memulai wadah buruh pelabuhan dengan nama mereka (atau dengan ID mereka)
  • sudo docker container prune :menghancurkan dan menghapus semua kontainer yang dihentikan

Anda dapat melihat semua perintah di atas yang digunakan dalam konteks di tangkapan layar di bawah ini:

Ada banyak perintah container buruh pelabuhan lainnya untuk dilihat, diubah, diperiksa, atau bahkan di-remote ke container di server Anda. Anda dapat melihat semuanya dengan menjalankan sudo docker container --help .

Meskipun sekarang Anda telah menerapkan server web dalam wadah yang berjalan di latar belakang, Anda masih tidak memiliki cara untuk meng-host konten khusus Anda. Apa adanya, Caddy hanya menyajikan halaman web default.

Sekarang mari kita lihat bagaimana Anda dapat menggunakan gambar Docker dengan konsep yang disebut bind mount untuk men-deploy container dengan data yang berarti.

Menyimpan Data Kontainer dengan Bind Mounts

Docker bekerja pada konsep gambar (dan wadah yang dihasilkannya) sebagai sesuatu yang dibuang atau sementara . Jika ada pembaruan pada perangkat lunak Caddy, Anda tidak memperbarui layanan, Anda membuang seluruh bayi dengan bak mandi dan menggunakan gambar yang benar-benar segar dari awal.

Manfaat membuang dan membuat ulang wadah seperti ini sangat signifikan. Ketidakstabilan dalam perangkat lunak diperkenalkan dari waktu ke waktu dengan terus memperbarui perangkat lunak (berpotensi) tahun. Dengan menggunakan gambar baru setiap saat, Docker memberi Anda basis yang stabil, andal, (mungkin) teruji pada setiap pembaruan.

Konsep ini setara dengan menggunakan instalasi baru Windows setiap kali Anda memperbarui perangkat lunak aplikasi Windows Anda. Bukan ide yang menyenangkan di Windows, tetapi sangat dapat diterapkan di Docker.

Metodologi sekali pakai memiliki masalah yang jelas. Anda tidak ingin data penting dibuang saat layanan Anda saat ini hilang. Docker memecahkan masalah ini menggunakan konsep yang disebut bind mounts .

Sekarang mari kita jelajahi cara membuat pengikatan untuk sebuah wadah.

Membuat Struktur Folder dan Membersihkannya

Sebelum Anda dapat menggunakan bind mount, Anda harus membuat lokasi penyimpanan data ini. Tutorial ini akan membuat folder di direktori home Anda. Untuk melakukannya di VS Code saat masih terhubung ke Server Ubuntu Anda:

  1. Klik kanan di area kosong Kode VS Explorer panel dan pilih folder baru.

2. Beri nama container/caddy/files folder baru.

Nama folder terserah Anda selama mereka didefinisikan dengan benar dalam perintah buruh pelabuhan yang akan datang. Dengan menggunakan garis miring, VS Code mengartikan ini sebagai membuat tiga folder. Berkas folder adalah subdirektori dari caddy , dan caddy adalah subdirektori dari kontainer. Anda tidak harus menggunakan struktur folder ini, tetapi strukturnya lebih masuk akal jika Anda memiliki beberapa wadah di server yang sama.

Jika tidak dilakukan sebelumnya, hentikan dan hapus wadah yang Anda buat sebelumnya dengan yang berikut:

# stop and remove ALL currently running containers.
# The $(sudo docker ps -q) dynamically grabs all running container IDs
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

Anda dapat melihat perintah ini pada tangkapan layar di bawah ini:

Menyebarkan Wadah Caddy dengan Bind Mount

Anda sekarang memiliki struktur folder yang dibangun di Server Ubuntu. Saatnya membuat wadah Caddy dengan bind mount.

  1. Sebelum Anda melangkah terlalu jauh, pertama-tama cari tahu di mana container yang Anda gunakan menyimpan data persisten. Lokasi itu akan berbeda tergantung pada siapa yang membuat image Docker dan tujuan apa yang dilayaninya.

Pilihan terbaik Anda untuk menemukan di mana data persisten disimpan adalah dengan memeriksa dokumentasi di dalam Docker Hub untuk gambar yang dimaksud. Untuk Caddy, Anda dapat menemukan dokumentasinya di sini :

2. Mulai wadah menggunakan perintah di bawah ini. -v ~/containers/caddy/files:/usr/share/caddy parameter memetakan jalur sebelum titik dua (~/containers/caddy/files ) ke folder di dalam wadah (/usr/share/caddy ). Ini bekerja sangat mirip dengan perintah pemetaan port:Kecuali Anda memetakan folder, bukan port. Jenis perintah ini disebut Bind Mount .

# bind a folder on the host (the path before the colon) to
# /usr/share/caddy inside the container
sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy caddy

tilde (~ ) dalam kode di atas mengacu pada folder rumah. Untuk artikel ini, yang setara dengan /home/homelab .

3. Buka browser dan arahkan kembali ke alamat http server Anda. Anda akan melihat bahwa server sekarang melayani 404 halaman. Hal ini diharapkan karena saat ini Anda tidak memiliki index.html file di ~/containers/caddy/files .

4. Buat index.html file di ~/containers/caddy/files pada server Ubuntu di jendela VS Code Explorer yang terlihat seperti berikut ini:

<body><h2>hello world!</h2></body>

5. Navigasikan ke alamat HTTP server Anda dan konfirmasikan bahwa penampung sekarang melayani index.html baru Anda halaman.

Anda dapat melihat semua hal di atas dalam animasi berikut:

Tidak seperti perintah manajemen buruh pelabuhan, file yang Anda buat (seperti index.html ) tidak memerlukan hak administratif. Ini karena Anda memiliki konten yang disajikan oleh server caddy, seperti yang ada di folder rumah Anda.

Memvalidasi Bind Mount

Bagus sekali! Anda tidak hanya menggunakan wadah Docker yang benar-benar baru, tetapi wadah itu menyajikan konten yang disimpan secara lokal di folder rumah Anda! Anda dapat membuktikannya dengan menjalankan yang berikut ini:

  1. Hentikan dan keluarkan container yang sedang berjalan. Langkah ini benar-benar menghapus semuanya termasuk file index.html jika Anda tidak menggunakan bind mount.
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

2. Buat wadah baru.

sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy caddy

3. Verifikasi bahwa penampung baru masih menyajikan file index.html di http://<your server> alamat.

Membuat Kontainer Docker yang Persisten

Wadah tidak begitu berguna jika berhenti saat server di-boot ulang. Secara default, itulah yang akan terjadi jika Anda tidak mewujudkannya. Untuk mencegah hal ini, mari buat wadah caddy baru lagi tetapi kali ini setelah itu restart ketika host Docker, Ubuntu dalam hal ini, restart.

  1. Hentikan dan hapus semua container yang sedang berjalan.
# stop and remove ALL currently running containers
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

2. Restart wadah caddy dengan --restart always parameter, untuk menyetel wadah baru ini agar memulai dengan Host saat reboot. Dengan --restart always bendera di tempat, wadah Anda sekarang berperilaku seperti layanan yang tepat:mulai secara otomatis saat boot.

sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy --restart always caddy

3. Mulai ulang server.

4. Sekarang verifikasi bahwa wadah baru muncul dan masih menyajikan file index.html di http://<your server> alamat.

Anda dapat melihat perintah berikut diterapkan di bawah ini:

Lanjut

Pada tahap ini, Anda harus memiliki lingkungan Docker yang berfungsi dan pemahaman dasar tentang image dan container. Anda dapat menarik, memulai, menghentikan, dan melakukan pengelolaan dasar penampung Anda. Anda juga telah berhasil membuat wadah layanan web yang berjalan menggunakan pengikatan pengikatan dan pemetaan port.

Masih banyak yang harus dibahas mengenai Docker:Ikuti terus ruang ini, karena artikel berikutnya akan membahas manajemen buruh pelabuhan tingkat lanjut menggunakan Docker Compose.


Docker
  1. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  2. Cara Menginstal dan Menggunakan Docker Compose di CentOS

  3. Cara Menginstal Docker dan Menjalankan Wadah Docker di Ubuntu

  1. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  2. Cara Menginstal dan Menggunakan Anggur di Ubuntu 20.04

  3. Cara Menginstal dan Menggunakan Docker di Ubuntu 18.04

  1. Cara Menginstal dan Menggunakan Docker Compose di Ubuntu 18.04

  2. Cara Menginstal dan Menggunakan FFmpeg di Ubuntu 18.04

  3. Cara Menginstal dan Menggunakan Anggur di Ubuntu 18.04