Kali ini saya akan membuat catatan kecil untuk proses installasi docker di Ubuntu 20.04. Pada lab kita kali ini saya akan menggunakan compute instance / virtual machine / VPS Gratis dari Oracle Cloud Infrastructure (OCI). Pada prakteknya Docker banyak saya gunakan untuk menjalankan berbagai aplikasi web base dengan berbagai environment, seperti jenis web server, versi php maupun database yang berbeda-beda menyesuaikan requirement dari aplikasi yang akan digunakan. Banyak sekali tulisan di internet yang membahas kelebihan penggunaan docker dalam lingkungan production maupun development.
Docker sendiri adalah sebuah tool yang memungkinkan developers untuk men-deploy aplikasi mereka dengan mudah dengan cara menjalankan image yang sudah dibuild dalam suatu container untuk dijalankan pada host suatu sistem operasi. Image adalah paket perangkat lunak yang ringan, mandiri, dan executable yang mencakup kode, run time, system tools, system libraries dan settings yang diperlukan untuk menjalankan aplikasi. Container memungkinkan developers untuk mengemas aplikasi dengan semua bagian yang dibutuhkan, contoh seperti library dan dependency lainnya, dan mengirim semuanya sebagai satu paket (package).
1. Pra Installasi
Berikut ini langkah-langkah proses installasi docker di sistem operasi ubuntu 20.04. Untuk paket installasi dockernya sendiri saya akan menggunaan repository dari dockernya langsung. Sebelumnya kita akan menginstall beberapa apps pendukungnya terlebih dahulu.
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Tambahkan GPG key untuk repositori Docker ke sistem operasi kita.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Tambahkan repositori docker berikut ini, jika kita menggunakan CPU dengan arsitektur x86_64 / AMD64.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Atau repository docker berikut, jika menggunakan CPU dengan arsitektur ARM.
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Jika tidak yakin dengan arsitektur CPU yang digunakan, bisa melakukan pengecekan dengan perintah.
$ dpkg –print-architecture
Update dan perbarui repository list baru kita.
$ sudo apt update
Untuk memastikan kita akan menginstall docker dari repository resminya docker, kita bisa menjalakan perintah berikut.
$ apt-cache policy docker-ce
docker-ce:
Installed: (none)
Candidate: 5:5:20.10.8~3-0~ubuntu-focal
Version table:
5:5:20.10.8~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
Dari hasil perintah diatas, kita bisa melihat docker versi terbaru adalah 20.10.8 dari repository resminya yaitu https://download.docker.com/linux/ubuntu focal/stable amd64 Packages.
2. Installasi Docker
Selanjutnya kita bisa langsung menginstall docker di Ubuntu 20.04.
$ sudo apt install docker-ce
Setelah installasi docker selesai, untuk melihat docker service kita sudah berjalan, lakukan perintah berikut.
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-09-24 16:02:23 WITA; 5min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 25493 (dockerd)
Tasks: 8
Memory: 36.4M
CGroup: /system.slice/docker.service
└─25493 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3. Menggunakan Perintah Docker Tanpa Sudo
Sampai disini docker kita sudah berjalan. Secara default penggunaan perintah docker hanya bisa dijalankan oleh superuser atau root atau oleh pengguna di dalam grup docker, sehingga jika kita ingin menjalakan perintah docker, harus dikombinasi dengan perintah sudo. Biar gak ribet, kita akan mengkonfigurasi agar perintah docker bisa kita jalankan tanpa menggunakan sudo. Hal yang perlu kita lakukan adalah menambahkan user yang kita gunakan saat ini ke dalam group docker. Dalam case ini saya menggunakan user “ubuntu”.
$ sudo usermod -aG docker ubuntu
Untuk melihat perubahan group yang kita masukkan, silahkan logout dan login kembali, kemudian pastikan ada group docker di dalam user kita.
$ id -nG
Jika sudah semua, selanjutnya coba jalankan perintah docker tanpa sudo sekaligus untuk melihat penggunaan perintah docker selengkapnya.
$ docker
Dan untuk melihat informasi keseluruhan dari sistem docker, jalankan perintah.
$ docker info
4. Test Pulling dari Docker Hub
Docker container dibangun dari image dari Docker Hub yaitu sebuah Docker Registry. Untuk memastikan docker kita dapat mendownload / pull image dari Docker Hub, kita bisa jalankan perintah berikut.
$ docker run hello-world
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:393b81f0ea5a98a7335d7ad44be96fe76ca8eb2eaa76950eb8c989ebf2b78ec0 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ...
Jika muncul output seperti diatas, berarti docker kita telah sukses melakukan pulling docker image dari Docker Hub.
5. Install Docker Compose
Selanjutnya kita akan akan menginstall Docker Compose, versi docker compose yang akan saya install adalah versi 1.29.2, jika ingin melihat versi docker compose yang berbeda, bisa cek halaman Compose repository release page on GitHub.
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
Untuk memeriksa perintah docker compose kita sudah bisa berjalan, test perintah berikut.
$ docker-compose --version docker-compose version 1.29.2, build 5becea4c
Untuk kita yang menggunakan CPU dengan arsitektur ARM64 cara diatas menghasilkan error saat kita menjalankan docker-compose karena memang cara diatas hanya jalan untuk arsitektur x86_64 dan AMD64 saja. Untuk case ini saya menggunakan referensi dari https://hub.docker.com/r/linuxserver/docker-compose dimana kita akan menggunakan docker-compose di dalam container dan ini support multiple arsitektur seperti x86-64, arm64 dan armhf.
$ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
So, keep healthy and happy blogging…