Hai semuanya, apa kabar? Kali ini saya mau berbagi tentang hal yang saya baru pelajari. Belakangan ini (atau saat ini), saya lagi ambil kursus/training Docker. Soalnya waktu itu saya liat senior saya lagi setting Docker dan saya gak ngerti, dan ada saran dari Boss untuk ambil kursus di suatu platform, dan saya ikuti deh kursusnya.
Sebenernya kata Docker ini gak jarang saya jumpai, baik di kerjaan ataupund i forum-forum. Itu lho yang gambarnya ikan paus bawa container. Nah, sama dengan logonya, Docker ini sebenernya adalah platform yang digunakan untuk menjalankan aplikasi, service, atau packages dalam bentuk container. Kalau container sendiri mungkin teman-teman juga udah paham, saya juga beberapa kali nulis tentang container dan ada hubungannya dengan Proxmox VE.
Lanjut, ada beberapa poin yang bisa dibilang kelebihan dari menggunakan Docker. Salah satunya, deployment aplikasi menjadi lebih ringkas karena dengan menggunakan container (CT), maka semua dependensi sudah berada dalam CT tersebut, sehingga dapat meminimalisir kegagalan konfigurasi apabila dijalankan pada environment yang berbeda.
Saya juga mau sharing gimana sih cara instal Docker di Linux (Ubuntu-based). Seperti biasa, kita lakukan update repositori dengan manggunakan perintah sudo apt update
. Selanjutnya, perintah yang digunakan untuk melakukan instalasi Docker adalah sudo apt install docker.io
.
Ukuran dari instalasi ini membutuhkan ~300MB dari space yang ada pada disk. Apabila proses instalasi sudah selesai, kita bisa cek apakah service Docker sudah aktif atau belum dengan menggunakan perintah sudo systemctl status docker
. Contohnya sebagai berikut:
phantom-zorin2@phantom-zorin:~$ sudo systemctl status docker
Apabila tenyata Docker belum dalam keadaan aktif, kita bisa coba aktifkan dengan menggunakan perintah
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-07-03 14:12:17 WIB; 9min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 43199 (dockerd)
...
sudo systemctl start docker
.
Untuk melihat versi dan beberapa detail lain tentang Docker, kita bisa menggunakan perintah sudo docker version
. Contoh tampilannya seperti di bawah ini:
phantom-zorin2@phantom-zorin:~$ sudo docker version
Client:
Version: 24.0.7
API version: 1.43
Go version: go1.21.1
Git commit: 24.0.7-0ubuntu2~22.04.1
Built: Wed Mar 13 20:23:54 2024
OS/Arch: linux/amd64
Context: default
...
Salah satu perintah dasar yang ada pada Docker adalah sudo docker ps
. Perintah ini berguna untuk menampilkan CT apa saja yang sedang berjalan. Dan kita juga bisa menggunakan perintah sudo docker ps -a
untuk melihat SEMUA CT, artinya termasuk CT yang sebelumnya telah berjalan namun saat ini sudah berhenti.
Kita coba jalankan perintah sudo docker ps saat masih belum punya CT apa-apa pada host. Tampilannya seperti berikut:
phantom-zorin2@phantom-zorin:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Tampilannya masih kosong.
Kita coba jalankan suatu CT. Tapi, pada host kita kan “belum ada apa apa”? Kita bisa kok ambil image atau “mentahan” dari Docker Hub. Docker Hub itu adalah suatu penyimpanan daring yang dirancang untuk CT Docker. Banyak image resmi yang ada di Docker Hub.
Di Docker Hub ada suatu image yang bernama “hello-world” yang biasa digunakan untuk testing Docker. Kita coba yuk.
Kita gunakan perintah sudo docker run hello-world
. Tampilan sesudah menjalankan perintah tersebut seperti ini:
phantom-zorin2@phantom-zorin:~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:94323f3e5e09a8b9515d74337010375a456c909543e1ff1538f5116d38ab3989
Status: Downloaded newer image for hello-world:latest
Secara default, Docker akan mencari image dari penyimpanan lokal kita. Karena tidak ditemukan image dari “hello-world” ini, maka Docker akan pull atau menarik image dari Docker Hub. Berikut ini tampilan dari hello-world tersebut:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Lalu kita coba cek menggunakan perintah sudo docker ps
. Apakah CT tersebut terdaftar atau tidak.
phantom-zorin2@phantom-zorin:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
phantom-zorin2@phantom-zorin:~$
Lho kok gak ada? Secara default, CT berjalan apabila masih ada proses di dalamnya. Apabila sudah tidak ada proses, maka CT akan berhenti. Sekarang kita coba gunakan perintah sudo docker ps -a
untuk cek apakah CT hello-world tadi terdaftar atau tidak.
phantom-zorin2@phantom-zorin:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
f907b44b0dcc hello-world "/hello" 7 minutes ago Exited (0) 7 minutes ago
NAMES
frosty_lichterman
(tampilan tabelnya sebenarnya memanjang ke kanan ya, kolom NAMES di sebelah kanan PORTS)
Dengan menggunakan perintah sudo docker ps -a
, kita bisa cek CT apa saja yang pernah dijalankan. CT dari hello-world ini diberikan ID tertentu pada kolom CONTAINER ID, dan diberikan nama random pada kolom NAMES.
Kita cek pada kolom STATUS, CT tersebut memiliki status Exited, 7 minutes ago yang menandakan bahwa CT tersebut dalam kondisi berhenti/keluar setelah selesai menjalankan perintahnya sejak tujuh menit yang lalu, yaitu /hello.
Gimana teman-teman, instalasi dan penggunaan Docker ini menurut teman-teman gampang atau susah nih? Share dong di kolom komentar. Nah, untuk tulisan kali ini cukup sampai disini dulu yaa. Sampai jumpa, Bye~