install docker di ubuntu

Install Docker di Ubuntu 20.04

Posted on

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…