Docker memberi Anda semua yang Anda butuhkan untuk membangun dan menjalankan container di sistem Linux Anda. Wadah mirip dengan mesin virtual ringan. Mereka memungkinkan Anda membuat image aplikasi portabel yang berjalan menggunakan kernel sistem operasi host Anda.
Anda dapat menggunakan Docker pada platform Debian, Fedora, CentOS dan Raspbian. Turunan dari distribusi tersebut juga akan berfungsi. Docker menyediakan build x86/x64 dan ARM untuk sebagian besar platform yang didukung. Kami menggunakan sistem Debian dengan apt
manajer paket untuk panduan ini. Instruksi khusus untuk distribusi lain dapat ditemukan di dokumen Docker.
Docker Compose memungkinkan Anda membangun dan menjalankan tumpukan beberapa kontainer. Anda membuat file YAML yang mengonfigurasi wadah aplikasi Anda. Anda kemudian dapat menggunakan satu perintah untuk memulai semua wadah dan menautkannya bersama-sama. Compose membantu Anda memisahkan komponen tumpukan Anda ke dalam layanan kontainer individual.
Compose didistribusikan secara independen dari Docker. Instal Docker sebelum menambahkan Compose – jika tidak, Compose tidak akan dapat berfungsi.
TERKAIT: Cara Menggunakan Docker untuk Menampung PHP dan Apache
Instal Docker
Anda dapat menggunakan manajer paket sistem operasi Anda untuk menginstal rilis Docker terbaru. Anda harus menambahkan repositori Docker, memperbarui daftar paket Anda, lalu menginstal Docker.
Debian/Ubuntu
Mulailah dengan menambahkan dependensi yang dibutuhkan oleh proses instalasi:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Selanjutnya, tambahkan kunci GPG repositori Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Tambahkan repositori ke sumber Anda dan perbarui daftar paket Anda:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
Sekarang Anda dapat menginstal Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora
Tambahkan repositori paket Docker:
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Instal Docker:
sudo dnf install docker-ce docker-ce-cli containerd.io
CentOS
Tambahkan repositori paket Docker:
sudo yum -y install yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Instal Docker:
sudo yum install docker-ce docker-ce-cli containerd.io
Menggunakan Docker Tanpa Sudo
Daemon Docker berjalan sebagai root
. Anda biasanya harus mengawali perintah Docker dengan sudo
. Ini bisa menjadi membosankan jika Anda sering menggunakan Docker. Menambahkan diri Anda ke docker
grup akan membiarkan Anda menggunakan Docker tanpa sudo
.
sudo usermod -aG docker $USER
Setelah Anda berada di grup, logout dan login lagi. Atau, jalankan newgrp docker
perintah untuk segera masuk ke grup yang diperbarui. Anda sekarang seharusnya dapat melepaskan sudo
dari perintah Docker.
Menguji Instalasi Docker Anda
Sekarang Docker terinstal, saatnya menguji apakah itu berfungsi! Anda dapat menggunakan minimal hello-world
gambar.
docker run hello-world:latest
Anda akan melihat beberapa baris output muncul di terminal Anda. Docker pertama-tama akan mencari hello-world:latest
gambar di mesin Anda. Karena tidak akan ada, gambar akan ditarik dari repositori Docker Hub.
Setelah gambar ditarik, wadah baru akan dibuat darinya. Wadah dikonfigurasi untuk memancarkan pesan dasar "hello world" dan kemudian keluar. Jika Anda melihat teksnya, berarti instalasi Docker Anda berfungsi!
Mengelola Layanan Docker
Anda dapat memeriksa apakah Docker berjalan dengan memeriksa layanannya dengan systemctl
. Ada dua komponen yang perlu dipertimbangkan, docker
dan containerd
. docker
adalah daemon Docker Engine tempat CLI mengirimkan perintah. containerd
adalah runtime dasar yang menjalankan container Anda.
sudo systemctl status docker.service sudo systemctl status containerd.service
Anda dapat mengelola daemon seperti layanan lain di sistem Anda. Gunakan systemctl stop
jika Anda ingin menghentikan sementara Docker dan mengosongkan sumber daya sistem yang digunakan oleh container Anda:
sudo systemctl stop docker.service
Anda dapat memulai ulang layanan dengan systemctl start
.
Menambahkan Docker-Compose
docker-compose
adalah biner terpisah yang paling baik diunduh langsung dari rilis GitHub proyek. Distribusi Linux yang paling populer memang menyertakan Compose dalam manajer paket mereka tetapi bisa jadi sudah usang secara signifikan.
Buka halaman rilis Docker Compose dan catat nomor versi terbaru. Pada saat penulisan, itu adalah 1.29.0
.
Ganti versi yang Anda lihat sebagai ganti 1.29.0
dalam perintah di bawah ini. Ini akan mengunduh biner yang tepat untuk sistem Anda dan memasukkannya ke dalam /usr/local/bin
.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Selanjutnya buat file tersebut dapat dieksekusi:
sudo chmod +x /usr/local/bin/docker-compose
Anda sekarang dapat menggunakan docker-compose
perintah di terminal Anda. Coba jalankan docker-compose --version
untuk memeriksa.
Membuat File Tulis Docker Sederhana
Untuk menggunakan docker-compose
anda harus membuat docker-compose.yml
mengajukan. Ini menjelaskan wadah yang membentuk tumpukan aplikasi Anda. Anda dapat menentukan binding port, variabel lingkungan, jaringan, dan volume yang digunakan oleh container Anda.
Wadah yang dideklarasikan dalam docker-compose.yml
yang sama file secara otomatis menjadi bagian dari tumpukan yang sama. Mereka ditautkan bersama ke dalam jaringan Docker, sehingga mereka dapat berkomunikasi satu sama lain menggunakan docker-compose.yml
mereka nama layanan sebagai nama host.
Berikut adalah docker-compose.yml
sederhana untuk menjalankan server web PHP dan database MySQL:
version: "3" services: app: image: php8.0-apache environment: - MYSQL_SERVER=mysql - MYSQL_USERNAME=root - MYSQL_PASSWORD=example ports: - ${PORT:-80}:80 restart: unless-stopped mysql: image: mysql:8.0 expose: - 3306 environment: - MYSQL_ROOT_PASSWORD volumes: - mysql:/var/lib/mysql restart: unless-stopped volumes: mysql:
Anda dapat meluncurkan kedua layanan dengan menjalankan docker-compose up -d
. Anda akan melihat kedua gambar ditarik dari Docker Hub. Kontainer kemudian akan dimulai. Anda dapat menghentikan keduanya menggunakan docker-compose stop
. Gunakan docker-compose down
untuk menghapus wadah.
Contoh file YAML menampilkan beberapa fitur Docker Compose. Kontainer didefinisikan di bawah services
node, dengan setiap wadah mendeklarasikan image
Docker-nya . Anda dapat meneruskan variabel lingkungan shell ke dalam wadah (environments
) dan atur pengikatan port Docker (ports
). Variabel lingkungan dapat diinterpolasi menjadi string menggunakan ${VARIABLE:-DEFAULT}
sintaksis. Jika variabel tidak disetel di shell Anda, DEFAULT
akan digunakan sebagai nilai sebagai gantinya. Anda dapat mempelajari lebih lanjut tentang Docker Compose di panduan khusus kami.
Ringkasan
Anda dapat dengan mudah menginstal Docker menggunakan manajer paket distribusi Linux populer. Tambahkan repositori Docker lalu instal docker-ce
, docker-ce-cli
dan containerd.io
. Komponen ini memberikan semua yang Anda butuhkan untuk membangun dan menjalankan container.
Setelah Anda menjalankan dan menjalankannya, Anda dapat menulis Dockerfile
dan gunakan docker build -t my-app:latest .
untuk membangunnya. Kemudian gunakan docker run my-app:latest
untuk memulai penampung Anda.
Docker-Compose adalah lapisan abstraksi tambahan yang membuatnya lebih mudah untuk menjalankan "tumpukan" beberapa wadah. Dengan Compose, Anda tidak perlu menjalankan beberapa perintah secara manual secara berurutan. Anda dapat menulis file YAML deklaratif dan menggunakan docker-compose up
untuk memulai semua container Anda secara bersamaan.
TERKAIT: Apa Itu Docker Compose, dan Bagaimana Cara Menggunakannya?