Docker adalah teknologi containerisasi yang memungkinkan Anda untuk dengan cepat membangun, menguji, dan menggunakan aplikasi sebagai wadah yang portabel dan mandiri yang dapat berjalan di mana saja.

Docker telah menjadi standar de facto untuk deployment Container dan merupakan alat penting bagi para engineer DevOps serta integrasi dan pipeline pengiriman mereka.

Dalam tutorial ini, kami akan membahas cara memasang Docker pada mesin Ubuntu 18.04 dan menjelajahi konsep dan perintah Docker dasar.

Prasyarat

Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo. Semua perintah dalam tutorial ini harus dijalankan sebagai user non-root.

Instal Docker di Ubuntu

Meskipun paket instalasi Docker tersedia di repositori resmi Ubuntu 18.04, namun paket tersebut mungkin tidak selalu merupakan versi terbaru. Pendekatan yang disarankan adalah menginstal paket Docker terbaru dari repositori Docker.

Untuk menginstal Docker di Ubuntu 18.04, ikuti langkah-langkah ini:

  1. Pertama, perbarui indeks paket dan instal dependensi yang diperlukan untuk mengaktifkan repositori baru melalui HTTPS:
    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
  2. Impor GPG key repositori menggunakan perintah curl berikut:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    Tambahkan repositori Docker APT ke daftar repositori perangkat lunak sistem Anda dengan mengetik:

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  3. Sekarang setelah repositori Docker diaktifkan, perbarui index packet apt dan instal versi terbaru Docker CE (Community Edition) dengan:
    sudo apt update
    sudo apt install docker-ce
  4. Ketika instalasi selesai, layanan Docker akan mulai secara otomatis. Anda dapat memverifikasinya dengan mengetik:
    sudo systemctl status docker

    Outputnya akan terlihat seperti ini:

    * docker.service - Docker Application Container Engine
       Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
       Active: active (running) since Mon 2019-05-20 0122 WIB; 3s ago
         Docs: https://docs.docker.com
     Main PID: 14252 (dockerd)
        Tasks: 10
       CGroup: /system.slice/docker.service
               `-14252 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  5. Pada saat penulisan, versi terbaru Docker yang tersedia untuk Ubuntu 18.04 adalah 18.09.6. Periksa versi Docker dengan mengetik:
    docker -v
    Docker version 18.09.6, build 481bc77

Menjalankan Perintah Docker Tanpa Sudo

Secara default mengelola, Docker membutuhkan hak administrator. Jika Anda ingin menjalankan perintah Docker sebagai user non-root tanpa sudo , Anda perlu menambahkan user Anda ke grup docker yang dibuat selama instalasi paket Docker CE. Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo usermod -aG docker $USER

$USER adalah variabel lingkungan yang menampung nama pengguna Anda.

Logout dan log in kembali sehingga keanggotaan grup di-refresh.

Untuk memverifikasi bahwa Docker telah berhasil diinstal dan bahwa Anda dapat menjalankan perintah docker tanpa sudo, ketikkan perintah berikut yang akan mengunduh image testing, jalankan dalam container, cetak pesan “Hello from Docker” dan keluar:

docker container run hello-world

Outputnya akan terlihat seperti berikut:

docker hello world

Docker command line interface

Perintah Docker CLI mengambil bentuk ini:

docker [option] [subcommand] [arguments]

Untuk membuat daftar semua perintah yang tersedia jalankan docker tanpa parameter:

docker

Jika Anda memerlukan bantuan lebih lanjut pada [subcommand] apa pun, Anda dapat menggunakan --help seperti yang ditunjukkan di bawah ini:

docker [subcommand] --help

Pengertian Docker Images

Docker Images terdiri dari serangkaian lapisan sistem file yang mewakili instruksi dalam Dockerfile yang membentuk aplikasi perangkat lunak yang dapat dieksekusi. Image adalah file biner yang tidak dapat diubah termasuk aplikasi dan semua dependensi lainnya seperti libraries, binaries, dan instruksi yang diperlukan untuk menjalankan aplikasi.

Anda dapat menganggap Docker Images sebagai snapshot dari container Docker.

Sebagian besar Docker Images tersedia di Docker Hub. Docker Hub adalah layanan registri berbasis cloud yang di antara fungsi lainnya digunakan untuk menyimpan Docker Images baik dalam repositori publik atau pribadi.

Cara Mencari Docker Image

Untuk mencari image dari registri Docker Hub cukup gunakan perintah search.

Misalnya, untuk mencari image Ubuntu, gunakan perintah berikut:

docker search ubuntu

Outputnya akan terlihat seperti ini:

docker search image

Seperti yang Anda lihat hasil pencarian mencetak tabel dengan lima kolom, NAME, DESCRIPTION, STARS, OFFICIAL , dan AUTOMATED.

image resmi adalah image yang dikembangkan Docker bersama dengan mitra.

Sebagian besar images di Docker Hub ditandai dengan nomor versi. Ketika tidak ada tag yang ditentukan, Docker akan “pull” image terbaru.

Download Docker Image

Contoh untuk mengunduh image resmi terbaru dari Ubuntu 18.04, Anda akan menggunakan perintah berikut:

docker image pull ubuntu

docker pull image

Tergantung pada kecepatan Internet Anda, proses download mungkin memakan waktu beberapa detik atau beberapa menit.

Saat tidak menentukan tag, docker akan pull image Ubuntu terbaru yaitu 18,04. Jika Anda ingin pull beberapa versi Ubuntu sebelumnya, katakanlah Ubuntu 16.04 maka Anda perlu menggunakan docker image pull ubuntu:16.04.

Untuk mencantumkan semua jenis gambar yang telah diunduh:

docker image ls

Outputnya akan terlihat seperti ini:

docker list images

Hapus Docker Image

Jika karena alasan tertentu Anda ingin menghapus suatu gambar, Anda dapat melakukannya dengan sub perintah perintah rm dengan nama image yang ingin di hapus.

docker image rm ubuntu

docker remove image

Docker Containers

Sebuah instance dari sebuah image disebut container. Container mewakili runtime untuk satu aplikasi, proses, atau layanan.

Ini mungkin bukan perbandingan yang paling tepat tetapi jika Anda seorang programmer, Anda dapat menganggap image Docker sebagai Class dan Docker Container sebagai instance dari suatu class.

Kita dapat memulai, menghentikan, menghapus, dan mengelola sebuah wadah dengan sub-perintah docker container

Start Docker Container

Perintah berikut akan memulai Docker container berdasarkan pada image Ubuntu. Jika Anda tidak memiliki image secara lokal, maka perintah tersebut akan mengunduhnya terlebih dahulu:

docker container run ubuntu

Sekilas tidak ada yang terjadi sama sekali. Container Ubuntu akan berhenti segera setelah booting karena perintah tidak memiliki proses yang berjalan lama dan kita tidak memberikan perintah apa pun, sehingga kontainer tersebut boot, menjalankan perintah kosong dan kemudian keluar.

docker container run ubuntu

Switch -it memungkinkan kita untuk berinteraksi dengan container melalui baris perintah. Untuk memulai secara  interaktif jalankan perintah berikut :

docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#

Seperti yang dapat Anda lihat dari output di atas, setelah container dimulai, command prompt berubah yang berarti bahwa Anda sekarang bekerja dari dalam container.

Melihat List Docker Containers

Untuk melihat daftar container yang aktif, ketik:

docker container ls

Jika Anda tidak memiliki containers yang sedang berjalan, hasilnya akan kosong.
Untuk melihat containers yang aktif dan tidak aktif, berikan switch -a:

docker container ls -a

Hapus Container Docker

Untuk menghapus satu atau lebih kontainer, cukup salin ID container dan paste setelah perintah rm :

docker container rm c55680af670c

Kesimpulan

Anda telah belajar cara menginstal Docker di mesin Ubuntu 18.04 dan cara mengunduh image Docker dan mengelola containers Docker. Anda mungkin juga ingin membaca tentang Docker Compose, yang memungkinkan Anda untuk mendefinisikan dan menjalankan aplikasi Docker multi-container.

Tutorial ini tidak mencakup seluruh tutorial Docker. Dalam beberapa artikel kami berikutnya, kami akan terus menyelami aspek-aspek lain dari Docker. Untuk mempelajari lebih lanjut tentang Docker, lihat dokumentasi resmi Docker.