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 CentOS 7 dan menjelajahi konsep dan perintah dasar Docker.

Prasyarat

Sebelum melanjutkan dengan tutorial ini, pastikan untuk memiliki :

  • Server CentOS 7
  • Memiliki user non-root dengan hak sudo. Silahkan periksa panduan ini tentang cara membuat user baru sudo.

Instal Docker di CentOS

Meskipun paket Docker tersedia di repositori resmi CentOS 7, namun bisa jadi tidak selalu versi terbaru. Pendekatan yang disarankan adalah menginstal Docker adalah dari repositori Docker.

Untuk menginstal Docker di server CentOS 7, ikuti langkah-langkah di bawah ini:

  1. Perbarui paket yang diinstal ke versi terbaru:
    sudo yum update
    sudo yum upgrade
    
  2. instal dependensi yang diperlukan  :
    sudo yum install yum-utils device-mapper-persistent-data lvm2
  3. 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
  4. Sekarang setelah repositori Docker diaktifkan, instal versi terbaru Docker CE (Community Edition) dengan:
    sudo yum install docker-ce
  5. Ketika instalasi selesai, jalankan Docker dan aktifkan saat boot dengan perintah :
    sudo systemctl start docker
    sudo systemctl enable docker

     

  6. Anda dapat memverifikasinya layanan Docker telah berjalan, gunakan perintah :
    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 0820 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
  7. Pada saat penulisan, versi terbaru Docker yang tersedia untuk CentOS 7 adalah 18.06.1. Periksa versi Docker dengan mengetik:
    docker -v
    Docker version 18.06.1-ce, build e68fc7a

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 user 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:

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.

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 CentOS, gunakan perintah berikut:

docker search centos

Outputnya akan terlihat seperti ini:

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.

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

Jika kita ingin mengunduh versi resmi dari image Ubuntu, kita dapat melakukannya dengan menggunakan 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

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

Untuk mencantumkan semua jenis image yang telah diunduh:

docker image ls

Outputnya akan terlihat seperti ini:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB

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 centos

outputnya kurang lebih akan seperti berikut

Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0

Docker Container

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 CentOS. Jika Anda tidak memiliki image secara lokal, maka perintah tersebut akan mengunduhnya terlebih dahulu:

docker container run centos

Sekilas tidak ada yang terjadi sama sekali. Container CentOS 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.

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

docker container run -it centos /bin/bash
[root@712ef9304912 /]#

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
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"         22 minutes ago      Up 22 minutes                           ecstatic_ardinghelli

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
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

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 CentOS 7 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.