Docker adalah teknologi containerisasi yang memungkinkan Anda membangun, menguji, dan menerapkan aplikasi dengan cepat sebagai container mandiri dan portabel yang dapat dijalankan secara virtual di mana saja.
Dalam tutorial ini, kita akan membahas cara menginstal Docker CE di CentOS 7 dan menjelajahi konsep dan perintah Docker dasar.
Prasyarat #
Sebelum melanjutkan dengan tutorial ini, pastikan prasyarat berikut terpenuhi:
- Server CentOS 7
- Anda masuk sebagai pengguna non-root dengan hak istimewa sudo. Anda memeriksa panduan ini tentang cara membuat pengguna sudo baru.
Instal Docker di CentOS #
Meskipun paket Docker tersedia di repositori CentOS 7 resmi, mungkin tidak selalu versi terbaru. Pendekatan yang disarankan adalah menginstal Docker dari repositori Docker.
Untuk menginstal Docker di server CentOS 7 Anda, ikuti langkah-langkah di bawah ini:
-
Mulailah dengan memperbarui paket sistem Anda dan instal dependensi yang diperlukan:
sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2
-
Selanjutnya, jalankan perintah berikut yang akan menambahkan repositori stabil Docker ke sistem Anda:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
Sekarang setelah repositori Docker diaktifkan, instal versi terbaru Docker CE (Edisi Komunitas) menggunakan yum dengan mengetik:
sudo yum install docker-ce
-
Setelah paket Docker diinstal, jalankan daemon Docker dan aktifkan untuk memulai secara otomatis saat boot:
sudo systemctl start docker
sudo systemctl enable docker
-
Untuk memverifikasi bahwa layanan Docker sedang berjalan, ketik:
sudo systemctl status docker
Outputnya akan terlihat seperti ini:
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
-
Pada saat penulisan, versi stabil Docker saat ini adalah,
18.06.1
, untuk mencetak tipe versi Docker:docker -v
Docker version 18.06.1-ce, build e68fc7a
Menjalankan Perintah Docker Tanpa Sudo #
Secara default, mengelola Docker memerlukan hak administrator. Jika Anda ingin menjalankan perintah Docker sebagai pengguna non-root tanpa menambahkan sudo
Anda perlu menambahkan pengguna Anda ke grup buruh pelabuhan yang dibuat selama instalasi paket Docker CE. Anda dapat melakukannya dengan mengetik:
sudo usermod -aG docker $USER
$USER
adalah variabel lingkungan yang menyimpan nama pengguna Anda.
Keluar dan masuk kembali agar keanggotaan grup diperbarui.
Untuk memverifikasi Docker berhasil diinstal dan bahwa Anda dapat menjalankan perintah buruh pelabuhan tanpa sudo, jalankan perintah berikut yang akan mengunduh gambar uji, jalankan dalam wadah, cetak pesan "Halo dari Docker" dan keluar:
docker container run hello-world
Outputnya akan terlihat seperti berikut:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
Antarmuka baris perintah buruh pelabuhan #
Sekarang setelah kita memiliki instalasi Docker yang berfungsi, mari membahas sintaks dasar CLI buruh pelabuhan.
Baris perintah buruh pelabuhan mengambil bentuk berikut:
docker [option] [subcommand] [arguments]
Anda dapat membuat daftar semua perintah yang tersedia dengan mengetikkan docker
tanpa parameter:
docker
Jika Anda memerlukan bantuan lebih lanjut tentang [subcommand]
any , cukup ketik:
docker [subcommand] --help
Gambar Docker #
Gambar Docker terdiri dari serangkaian lapisan yang mewakili instruksi dalam file Docker gambar yang membentuk aplikasi perangkat lunak yang dapat dieksekusi. Gambar adalah file biner yang tidak dapat diubah termasuk aplikasi dan semua dependensi lainnya seperti biner, pustaka, dan instruksi yang diperlukan untuk menjalankan aplikasi. Singkatnya, image Docker pada dasarnya adalah snapshot dari container Docker.
Docker Hub adalah layanan registri berbasis cloud yang di antara fungsi lainnya digunakan untuk menyimpan gambar Docker baik di repositori publik atau pribadi.
Untuk mencari gambar di repositori Docker Hub cukup gunakan search
sub-perintah. Misalnya, untuk mencari gambar CentOS, jalankan:
docker search centos
Outputnya akan terlihat seperti berikut:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 4257 [OK]
ansible/centos7-ansible Ansible on Centos7 109 [OK]
jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 [OK]
tutum/centos Simple CentOS docker image with SSH access 39
Seperti yang Anda lihat, hasil pencarian mencetak tabel dengan lima kolom, NAME
, DESCRIPTION
, STARS
, OFFICIAL
dan AUTOMATED
. Gambar resmi adalah gambar yang dikembangkan Docker bersama dengan mitra hulu.
Jika kita ingin mendownload build resmi CentOS 7, kita bisa melakukannya dengan menggunakan image pull
sub-perintah:
docker image pull centos
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest
Bergantung pada kecepatan Internet Anda, pengunduhan mungkin memakan waktu beberapa detik atau beberapa menit. Setelah gambar diunduh, kami dapat membuat daftar gambar dengan:
docker image ls
Outputnya akan terlihat seperti berikut:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
centos latest e934aafc2206 4 weeks ago 199MB
Jika karena alasan tertentu Anda ingin menghapus gambar, Anda dapat melakukannya dengan image rm [image_name]
sub-perintah:
docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0
Kontainer Docker #
Instance dari sebuah image disebut container. Wadah mewakili waktu proses untuk satu aplikasi, proses, atau layanan.
Ini mungkin bukan perbandingan yang paling tepat, tetapi jika Anda seorang programmer, Anda dapat menganggap gambar Docker sebagai kelas dan wadah Docker sebagai turunan dari kelas.
Kita dapat memulai, menghentikan, menghapus, dan mengelola sebuah container dengan docker container
sub-perintah.
Perintah berikut akan memulai wadah Docker berdasarkan gambar CentoOS. Jika Anda tidak memiliki gambar secara lokal, itu akan mengunduhnya terlebih dahulu:
docker container run centos
Pada pandangan pertama, bagi Anda mungkin tampak bahwa tidak ada yang terjadi sama sekali. Yah, itu tidak benar. Kontainer CentOS berhenti segera setelah boot karena tidak memiliki proses yang berjalan lama dan kami tidak memberikan perintah apa pun, sehingga kontainer melakukan boot, menjalankan perintah kosong dan kemudian keluar.
Sakelar -it
memungkinkan kita untuk berinteraksi dengan wadah melalui baris perintah. Untuk memulai jenis penampung interaktif:
docker container run -it centos /bin/bash
Seperti yang Anda lihat dari output setelah container dimulai, command prompt berubah yang berarti Anda sekarang bekerja dari dalam container:
[root@719ef9304412 /]#
Untuk membuat daftar container yang sedang berjalan:, ketik:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
Jika Anda tidak memiliki wadah yang berjalan, hasilnya akan kosong.
Untuk melihat container yang sedang berjalan dan yang dihentikan, berikan -a
beralih:
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking
c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon
Untuk menghapus satu atau lebih penampung cukup salin ID penampung (atau ID) dari atas dan tempel setelah container rm
sub-perintah:
docker container rm c55680af670c