Anda di halaman 1dari 29

MODUL DOCKER

OLEH | YUSRIL MOHAMMAD 2021


DAFTAR ISI

DAFTAR P1USTAKA ___________________________________________________________1


PENDAHULUAN ______________________________________________________________ 2
GLOSARIUM ________________________________________________________________ 3
PENGENALAN DOCKER ________________________________________________________3
FUNGSI DOCKER ____________________________________________________________ 4
MENGAPA DOCKER? __________________________________________________________ 4
INSTALL DOCKER ____________________________________________________________ 5
INSTALL DOCKER PADA WINDOWS __________________________________________ 5
INSTALL DOCKER DI LINUX ________________________________________________ 9
ISTILAH - ISTILAH DALAM DOCKER ____________________________________________ 11
DOCKER IMAGE ____________________________________________________________ 12
LATIHAN 1: DOCKER IMAGE __________________________________________________ 12
MEMBUAT DOCKER IMAGE ___________________________________________________ 13
APA ITU DOCKERFILE? ___________________________________________________ 13
LATIHAN 2: MEMBUAT DOCKERFILE ____________________________________________ 14
APA ITU DOCKER CONTAINER? ________________________________________________ 16
Cara Mengelola Docker Container ___________________________________________ 17
LATIHAN 3: MEMBUAT DAN MENJALANKAN CONTAINER ____________________________18
DOCKER IMAGE REGISTRY ___________________________________________________ 19
LATIHAN 4: MENGUPLOUAD IMAGE KE DOCKER HUB ______________________________ 19
DOCKER COMPOSE _________________________________________________________ 20
KEGUNAAN DOCKER COMPOSE ________________________________________________21
LATIHAN 4: MEMBUAT DOCKER COMPOSE _______________________________________21
MENGAKSES CONTAINER ____________________________________________________ 22
LATIHAN 5: MENGAKSES CONTAINER __________________________________________ 23
DOCKER VOLUME ___________________________________________________________ 24
LATIHAN 6: MEMBUAT DOCKER VOLUME ________________________________________ 25
MENDEPLOY APLIKASI WORDPRESS ____________________________________________27
DAFTAR PUSTAKA __________________________________________________________ 28

MODUL DOCKER 1
PENDAHULUAN

Dalam dunia Information Technolgy (Teknologi Informasi) yang perkembangan tidak bisa
dibendung, semakin hari semakin banyak Technology yang bermunculan. Technolgy - technology
ini pengembangannya juga sangat cepat, jadi jika kita tidak mengikuti suatu technology yang
saat ini sedang populer, kita akan tertinggal dengan perkembangan yang tidak bisa kitabendung.
karenanya sangat penting untuk mengetahui technolgy - technology baru yang akan sangat
membantu kita sebagai seorang praktisi IT yang sedang kuliah atau bekerja dalam bidang
tersebut.

Perkembangan technology juga sudah masuk ke ranah virtual, seperti sekarang di masa
pandemi ini, sekolah - sekolah memanfaatkan technology dengan mengadakan kelas virtual,
dan perkantoran mengadakan meeting virtual, sosialisasi virtual. dan masih banyak lagi. karena
cepatnya perkembangan technology-lah yang membuat semua serentak menerapkan virualisasi
dengan sangat cepat dan sangat membantu sekolah atau instansi - instansi yang
menerapkannya.

Virutaliasi juga yang akan kita bahas di modul kali ini, aplikasi yang biasa berjalan diserver-
server fisik, sekarang pun sudah dibungkus kedalam mesin virtual yang bisa lebih memangkas
biaya, lebih efisien, dan lebih mudah pemeliharaannya.

Berbicara tentang virtualisasi kita mungkin pernah menggunakan software (perangkat lunak)
VirtualBox, VirtualBox yang kita tahu bisa melakukan virtualisasi system operasi dengan sangat
mudah, selain VirtualBox ada juga beberapa sofware yang bisa mejalankan beberapa mesin
virtual bersamaan yang dikenal juga dengan teknik virtualisasi atau hypervisor,

Kembali lagi dengan perkembangan technology, dengan perkembangan technology teknik


virtualiasi mesin virtual juga semakin berkembang sehingga melahirkan teknik virtualisasi
berbasis container, yang biasanya virtualisasi mesin virtual akan menciptakan satu kesatuan
utuh sistem operasi yang cenderung berat, sedangkan virtualisasi container cenderung lebih
ringan, alih - alih membungkus satu kesatuan utuh sistem operasi, technolgy kontener hanya
akan berjalan diatas kernel hostnya, dalam kata lain melakukan sharing kernel, kernel yang
dimaksud adalah kernel linux. salah satu teknik virtualiasi kontener yang sangat terkenal saat
ini adalah Docker.

Nah, dimodul ini kita akan belajar bersama - sama tentang docker, karena sangat penting untuk
dipelajari dimasa sekarang ini yang kebanyakan Perusahan - perusahaan besar di bidang IT dan

Cloud Provider yang besar seperti AWS, GCP, Microsoft Azure dan lain - lain hampir semua
sudah menggunakan docker.

MODUL DOCKER 2
GLOSARIUM

▸ Credentials - hal yang berhubungan dengan akun beserta passwod atau hal - hal yang

bersifat sensitif.

▸ Deploy - peluncuran aplikasi, mesin virtual atau aplikasi didalam kontener

▸ Distribution - Distribusi - distribusi yang dimaksud adalah distribusi linux.

▸ Environment - adalah suatu ruang lingkup pengembangan. seperti server production (server

produksi atau server utama) server development (server pengembangan) server staging
(server campuran antara server produksi dan pengembangan) anda bisa menguji aplikasi
seolah - olah berada dalam server produksi.

▸ Kernel - merupakan program komputer yang menjadi inti dari OS.

▸ OS - Operating System - Sistem Operasi

▸ Pull - Menarik / tarik - mengambil atau juga bisa diartikan mendownload.

▸ Push - Mendorong - atau bisa diartikan mengupload

▸ Server - Perangkat keras atau mesin virtual yang menyediakan sumber daya yang

dibutuhkan oleh aplikasi dan juga tempat dimana OS diinstall.

▸ Hypervisor - adalah salah satu teknik dari virtualisasi yang bisa menjalankan beberapa

Sistem Operasi (SO) bersamaan dengan sebuah host

▸ WSL - Windows Subsytem for Linux - adalah fitur windows untuk menciptakan

lingkungan yang ringan dan memungkinkan anda untuk menjalankan dan memasang
distribusi linux di windows.

PENGENALAN DOCKER

Docker adalah aplikasi untuk menyatukan berbagai file software dan pendukungnya dalam
sebuah wadah (container) agar memudahkan proses pengembangan software.
Nah, mengapa Anda perlu menggunakan container seperti yang ditawarkan Docker? Dalam
pengembangan aplikasi, developer memerlukan virtualisasi di server agar aplikasi bisa berjalan
di berbagai platform dengan konfigurasi hardware yang berbeda-beda.

Sayangnya, ketika menggunakan virtualisasi, Anda harus menyiapkan satu sistem operasi
secara penuh. Jika membutuhkan beberapa virtualisasi, server perlu resource yang besar.
Nah, container bisa digunakan sebagai alternatif virtualisasi sehingga tidak perlu menyiapkan
sistem operasi secara penuh. Dengan container, ukuran file menjadi lebih kecil dibandingkan
virtualisasi yang biasa digunakan.

MODUL DOCKER 3
FUNGSI DOCKER

Lalu, apa saja fungsi Docker yang akan memberikan manfaat pada pengembangan aplikasi?
Berikut adalah enam di antaranya:
▸ Mempermudah Pengembangan Aplikasi

Docker bisa mempermudah pekerjaan developer ketika mengembangkan aplikasi.


Alasannya, Docker lebih hemat resource dan mampu menyediakan environment yang stabil
untuk dijalankan di perangkat apapun, mulai dari cloud server hingga komputer pribadi.

▸ Menyederhanakan Konfigurasi

Docker tidak memiliki overhead sehingga developer bisa menjalankan aplikasi yang diuji
tanpa konfigurasi tambahan.

▸ Memudahkan Pengembangan Kode Pipeline

Developer bisa memanfaatkan Docker container sebagai tempat pengujian kode Pipeline
beserta tools yang diperlukan dengan lebih mudah.

▸ Bisa Digunakan untuk Debugging

Adanya fitur debug bisa membantu developer untuk mengatasi masalah pada aplikasi tanpa
perlu bersusah payah meninggalkan environment di Docker.

▸ Mendukung Multitenancy

Docker cocok digunakan untuk membuat aplikasi berstruktur multitenance seperti Software
as a Service (SaaS). Anda bisa membuat lebih dari satu environment yang terisolasi dan
menjalankan objek aplikasi untuk setiap tenant.

▸ Meningkatkan Sumber Daya dengan Cepat

Dengan Docker, peningkatan sumber daya perangkat dapat dilakukan dengan cepat sehingga
durasi pengembangan software lebih singkat.

MENGAPA DOCKER?

Mari kita uraikan bagaimana langkah-langkah dasar untuk mem-publish atau men-deploy
(meluncurkan) aplikasi di production, staging, development server sebelum adanya docker:

1. menginstall web server di server seperti nginx atau apache.

2. menginstall dependensi yang dibutuhkan aplikasi tersebut.

3. ssh kedalam server atau menggunakan ftp client seperti filezilla untuk memindahkan file-file
aplikasi tersebut.

MODUL DOCKER 4
mungkin sekilas langkah - langkah diatas sudah memenuhi kubutuhan kita dalam men-deploy
aplikasi pada server. tapi nyatanya ada masalah - masalah lain yang biasanya muncul pada saat
proses deploy maupun saat aplikasi sudah berjalan, mari kita uraikan kembali :

1. OS yang digunakan sudah tidak support atau versinya kurang update.

2. Versi web server tidak sama dengan web server yg digunakan client.

3. Versi dependencies yang digunakan client berbeda dengan versi yang terinstall di server.

dan masih banyak lagi masalah - masalah yang bisa terjadi.

Berbasis dari masalah - masalah tersebut diciptakankah suatu technology baru yang bisa mem-
bundle/membugkus OS dan semua dependesies yang dibutuhkan aplikasi kedalam satu
container yang disebut dengan teknik application containerized/aplikasi didalam kontener yang
sekarang sangat populer yaitu docker.

INSTALL DOCKER

Setelah mengenal docker beserta fungsi docker serta mengetahui kegunaan docker, sudah
saatnya mengetaui docker lebih dalam, langkah awal yaitu menginstall docker di lokal PC
(Personal Computer) kita.

INSTALL DOCKER PADA WINDOWS

▸ Langkah pertama kita harus mengaktifkan wsl pada windows sebagai docker backend. cari

pada kolompencarian windows, ketikan Turn Windows features on or off.

MODUL DOCKER 5
▸ Buka, dan pastikan Windows Subsytem for Linux dan Virtual Machine Platform tercentang,

setelah itutekan OK.

▸ Setelah itu download linux kernel update package dan install WSL2 Linux kernel update package

for x64machines (https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)


pastikan PC anda x64 based, jika menggunakan ARM64 silahkan mendownload dan install
package yang ini ARM64 package
(https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi)

▸ Cara mengeceknya dengan perintah berikut:

1 systeminfo | find "System Type"

▸ Jika hasilnya seperti berikut, artinya anda menggunakn x64 based, silahkan mendownload

package x64based.

▸ Setelah itu buka windows terminal, jika belum terinstall silahkan install dahulu windows terminal

dariMicrosoft Store , setelah itu ketikan perintah berikut untuk mengeset default wsl ke versi 2

1 wsl --set-default-version 2

MODUL DOCKER 6
▸ Setelah tu install Distribution Ubuntu-20.04 melalui wsl dengan perintah:

1 wsl --install -d Ubuntu-20.04

▸ Setelah terinstall anda akan diminta membuat akun user anda, dengan membuat username dan
password.

▸ Setelah itu install Docker-Desktop

(https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe) . Jika
muncul pop-up seperti ini,silahkancentang Install required…WSL 2 dan Add shortcut to
desktop. dan tekan Ok.

▸ Setelah selesai terinstall anda akan diminta untuk merestart PC anda, silahkan restart PC anda

terlebihdahulu.

▸ Setelah selesai restart, akan muncul pop up seperti dibawah ini. centang i accept the

terms.setelah itutekan Accept.

MODUL DOCKER 7
▸ Setelah itu tunggu hingga Docker Engine berjalan. Setelah itu akan muncul pesan seperti ini, tekan

tombol Skip tutorial. karena we're doing the hard way (kita melalukan cara yang susah) .

▸ Setelah kita akan masuk ke Distribution Ubuntu-20.04 yang tadi sudah kita install. buka kembali

windows terminal dan ketikan:

1 wsl -d Ubuntu-20.04

Sebenarnya perintah docker sudah tersedia juga di terminal windows, hanya saja lebih baik kita
menggunakanshell linux. karena perintah - perintah didalam modul ini mengandung perintah -
perintah shell linux. selajutnyakita akan terus menggunakan Distribution Ubuntu untuk
mengeksekusi perintah Docker, tapi kalo anda lebih suka menggunakan windows terminal, maka
tidak menjadi masalah. anda tetap bisa mengikuti modul ini dengan baik.

Langkah awal untuk memastikan docker berjalan dengan baik, ketikan perintah berikut:

1 docker run hello-world

Perintah diatas akan menghasilkan output seperti ini:

MODUL DOCKER 8
Jika outputnya sama seperti diatas dan juga pada Docker-Desktop muncul 1 container hello-
world, makadocker sudah success terinstall dengan baik di PC Windows anda.

Pada Docker-Desktop juga sudah tersedia management docker image, container, dan lain - lain,
tapi kita akan tetap melakukan perintah - perintah docker menggunakan terminal, seperti
sebelumnnya, we're doing the hardway. karena tidak menutup kemungkinan kita akan tetap
menggunakan terminal di server atau kita terpaksa menggunakan terminal, karena kita sudah
terbiasa menggunakan terminal untuk menjalankan perintah - perintah docker. maka kita tidak
perlu bingung lagi untuk mengelola docker nantinya.

INSTALL DOCKER DI LINUX

Untuk penginstallan di OS linux, dimodul ini kita akan menginstall docker di Distribution Ubuntu,
atausetidaknya Debian based.

▸ Uninstall docker versi lama jika ada

1 sudo apt-get remove docker docker-engine docker.io containerd runc

▸ Menambahkan repository docker

1 sudo apt-get update

2 sudo apt-get install \

3 ca-certificates \

4 curl \

5 gnupg \

6 lsb-release

▸ Menambahkan Docker official gpg keys

1 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -

▸ Menset repository yang stabil

1 echo \

2 "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker

3 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >


MODUL DOCKER 9
▸ Install Docker Engine

1 sudo apt-get update

2 sudo apt-get install docker-ce docker-ce-cli containerd.io

▸ Menambahkan user ke group docker

1 sudo usermod -G docker -a <nama-user>

▸ Silahkan restart PC atau signout dan signin kembali

▸ Setelah itu ketikan perintah berikut untuk memastikan docker sudah terinstall dengan baik

1 docker run hello-world

Jika outputnya seperti gambar diatas, maka docker sudah terinstall dengan baik. Terakhir kita
akan menginstall docker-compose, kegunaannya nanti akan dijelaskan.

▸ Ketikan perintah berikut untuk mendownload binary docker-compose

1 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

▸ Berikan execution permition (permisi untuk eksekusi perintah docker-compose)

1 sudo chmod +x /usr/local/bin/docker-compose

MODUL DOCKER 10
▸ Test docker compose dengan perintah :

1 docker-compose -v

Jika outputnya seperti gambar diatas maka docker-compose sudah terinstall dengan baik.

ISTILAH - ISTILAH DALAM DOCKER

Dalam penggunaan Docker, inilah beberapa istilah yang perlu Anda pahami:

▸ Docker image — Kumpulan file yang menunjang sebuah aplikasi.

▸ Docker container — Wadah untuk mengemas dan menjalankan aplikasi. Wadah ini mencakup

kode, runtime, system tools, dan pengaturan. Container hanya bisa mengakses resource
yang telah ditentukan dalam Docker image.

▸ Docker client — Tempat di mana pengguna dapat mengirimkan perintah seperti Docker build,

Docker pull, dan Docker run kepada Docker daemon.

▸ Docker Engine Rest API — Komponen yang digunakan untuk berinteraksi dengan Docker

daemon. Komponen ini bisa diakses klien melalui HTTP.

▸ Docker daemon — Proses pengelolaan Docker images, container, network, dan storage

volumes. Docker daemon menerima request dari Docker API dan akan memprosesnya.

▸ Docker host — Komponen yang menyediakan lingkungan untuk menjalankan aplikasi. Docker

host bertanggung jawab menerima perintah yang diberikan Docker client.

▸ Docker registry — Wadah untuk menyimpan Docker image. Docker image akan memberi

reaksi sesuai perintah yang diberikan. Misalnya, saat diberi perintah docker push, docker
image akan didorong atau dibagikan ke registry Docker Hub.

▸ Docker Hub — Layanan yang disediakan untuk menemukan dan berbagi Docker image.

MODUL DOCKER 11
DOCKER IMAGE

Docker image adalah blueprint Docker container yang berisi aplikasi dan semua yang Anda
butuhkan untuk menjalankan aplikasi. Container adalah contoh runtime instance dari suatu
image.

Untuk mengelola image docker kita bisa menggunakan perintah - perintah berikut ini:

▸ Melihat list docker image yang tersedia dilokal

1 docker images

1 docker image ls

▸ Download image

1 docker pull <nama-image>:<tag-image>

▸ Menghapus image

1 docker image rm <nama-image atau id-image>

Masih banyak lagi perintah untuk docker image, perintah - perintah diatas adalah perintah -
perintah yang akan sering digunakan.

LATIHAN 1: DOCKER IMAGE

Latihan docker image, kita akan mencoba menjalankan perintah - perintah yang sudah kita
bahas diatas

▸ Mendownload docker image, image yang kita akan download adalah image nginx

1 docker pull nginx

▸ Mendownload image nginx dengan menentukan image tag

1 doker pull nginx:1.20

MODUL DOCKER 12
▸ Melihat daftar docker image yang tersedia

1 docker images

▸ Menghapus image nginx yang tadi sudah didownload

1 docker image rm nginx:1.20

MEMBUAT DOCKER IMAGE

Sebelum kita membuat docker image, kita harus berkenalan dlu dengan Dockerfile.

APA ITU DOCKERFILE?

Dockerfile adalah file teks yang berisi semua perintah yang bisa dijalankan user pada baris
perintah untuk membuat image. Ini mencakup semua instruksi yang diperlukan oleh Docker
untuk membangun image.

Docker image terdiri dari serangkaian filesystem yang mewakili instruksi dalam Dockerfile image
dan membentuk aplikasi perangkat lunak yang dapat dieksekusi.
File Docker mengambil bentuk berikut:

1 # Comment

2 INSTRUCTION arguments

Meskipun instruksi tidak peka terhadap huruf case-sensitive, konvensi ini adalah untuk
menggunakan UPPERCASE untuk nama mereka.

Di bawah ini adalah daftar dengan deskripsi singkat tentang beberapa petunjuk Dockerfile yang
paling sering digunakan:

▸ ARG – Instruksi ini memungkinkan Anda untuk menentukan variabel yang dapat dilewati

saat build-time. Anda juga dapat menentukan nilai default.

▸ FROM – image dasar untuk membangun image baru. Instruksi ini harus menjadi instruksi

non-comment pertama di Dockerfile. Satu-satunya pengecualian dari aturan ini adalah ketika
Anda ingin menggunakan variabel dalam argumen FROM. Dalam hal ini FROM dapat
didahului dengan satu atau lebih instruksi ARG.

MODUL DOCKER 13
▸ LABEL – Digunakan untuk menambahkan metadata ke image, seperti deskripsi, versi, author

dll. Anda dapat menentukan lebih dari satu LABEL dan setiap instruksi LABEL adalah key-
value pair.

▸ RUN – Perintah yang ditentukan dalam instruksi ini akan dieksekusi selama proses build.

Setiap instruksi RUN membuat layer baru di atas image saat ini.

▸ ADD – Digunakan untuk menyalin file dan direktori dari sumber yang ditentukan ke

tujuan yang ditentukan pada image docker. Sumbernya dapat berupa file atau direktori
lokal atau URL. Jika sumbernya adalah arsiptar lokal , maka secara otomatis dibongkar ke
dalam imageDocker.

▸ COPY – Mirip dengan ADD tetapi sumbernya hanya berupa file atau direktori lokal.

▸ ENV – Instruksi ini memungkinkan Anda untuk mendefinisikan environment variable.

▸ CMD – Digunakan untuk menentukan perintah yang akan dieksekusi ketika Anda

menjalankan sebuah container. Anda hanya dapat menggunakan satu instruksi CMD di
Dockerfile Anda.

▸ ENTRYPOINT – Mirip dengan CMD, instruksi ini mendefinisikan perintah apa yang akan
dieksekusi ketika menjalankan sebuah container.

▸ WORKDIR – Directive ini menetapkan direktori kerja saat ini untuk instruksi RUN, CMD,

ENTRYPOINT, COPY, dan ADD berikut.

▸ USER – Tetapkan nama user atau UID untuk digunakan ketika menjalankan instruksi RUN,

CMD, ENTRYPOINT, COPY dan ADD.

▸ VOLUME – Memungkinkan Anda untuk memasang direktori mesin host ke container.

▸ EXPOSE – Digunakan untuk menentukan port tempat Container mendengarkan saat runtime.

Untuk mengecualikan file dan direktori agar tidak ditambahkan ke image, buat file
.dockerignore dalam direktori. Sintaks dari .dockerignore mirip dengan salah satu dari file

.gitignore Git.

LATIHAN 2: MEMBUAT DOCKERFILE

Skenario yang paling umum untuk membuat image Docker adalah pull images yang sudah ada
dari registri seperti itu (biasanya dari Docker Hub) dan menentukan perubahan yang ingin Anda
lakukan pada images dasar tersebut.

Images dasar yang paling umum digunakan saat membuat image Docker adalah Alpine karena
berukuran kecil dan dioptimalkan untuk dijalankan dalam RAM.

MODUL DOCKER 14
Docker Hub adalah layanan registri berbasis cloud yang di antara fungsi lainnya digunakan
untuk menyimpan image Docker baik dalam repositori publik atau pribadi.

kita akan membuat image sederhana, menggunakan basis nginx image.

▸ Pertama, buat direktori yang akan berisi Dockerfile dan semua file yang diperlukan:

1 mkdir myimage

▸ kedua, membuat Dockerfile

1 cd myimage

2 Touch Dockerfile

▸ ketiga, manambahkan perintah - perintah kedalam Dockerfile

1 FROM nginx

2 # menambahkan label, silahkan ganti nama sesuai yang diinginkan

3 LABEL maintainer="nama"

4 # kita akan menimpa file index.html default nginx

5 COPY ./index.html /usr/share/nginx/html/index.html

▸ keempat, kita akan membuat index.html versi kita sendiri

1 touch index.html

▸ silahkan mengisikan index.html sesuka hati atau bisa juga mengikuti syntax dibawah ini:

1 <h1>Pelatihan Docker</h1>

2 <h2>image version 1.0</h2>

tag - tag html tidak lengkap. pada saat membuat image yang sebenarnya.
disarankan untuk membuat semua component Dockerfile dengan sebaik-baiknya.
bisa saja nanti image kita akan digunakan oleh rekan kerja atau bisa jadi kita akan
mempublish docker image kita secara umum.

MODUL DOCKER 15
▸ kelima, build image

1 docker build -t myimage:1.0 .

Selamat kita sudah berhasil membuat docker image kita sendiri. selanjutnya bagaimana?
seteleh itu kita akan menjalankan image yang telah kita buat kedalam docker container, lebih
jelasnya akan dipaparkan di materi berikutnya tentang Docker Container.

APA ITU DOCKER CONTAINER?

Docker Container menjadi wadah bagi instance Docker image. Membuat dan menjalankan
Image menghasilkan Docker container. Image menyediakan template yang digunakan dalam
pembuatan container. Di dalam image, terdapat informasi yang dibutuhkan untuk membuat
container. Image bisa disimpan di komputer atau secara remote (Docker Registry).

Untuk cara membuat docker container kita bisa menuliskan perintah - perintah berikut:

▸ membuat container

1 docker create <docker-image>

▸ membuat container dan menentukan nama

1 docker create --name <nama-container> <image_name>

▸ membuat container dan menentukan port

1 docker create --name <nama-container> <port-host>:<port-container> <image-name

MODUL DOCKER 16
Cara Mengelola Docker Container

Untuk mengelola container tersebut, jalankan perintah-perintah sebagai berikut:

▸ Menampilkan daftar Docker container yang sedang berjalan

1 docker ps

▸ Menampilkan daftar semua Docker container

1 docker ps -a

▸ Memulai Docker container

1 docker start <nama-container-atau-id-container>

▸ Menghentikan Docker container

1 docker stop <nama-container-atau-id-container>

▸ Melihat status Docker container

1 docker stats

▸ Menghapus Docker container

1 docker rm <nama-container-atau-id-container>

▸ Untuk membuat docker container dan menjalankan container dan menentukan nama

1 docker run --name <nama-container> <image_name>

▸ Untuk membuat docker container membuat container dan menentukan port

1 docker run --name <nama-container> <port-host>:<port-container> <image-name

MODUL DOCKER 17
▸ Jika ingin melihat proses top dari container, gunakan command ini

1 docker top <nama-container-atau-id-container>

▸ Untuk melihat status container, misalnya penggunaan CPU, penggunaan memori, dll.

1 docker stats

▸ Terakhir, untuk kill container Docker

1 docker kill <nama-container-atau-id-container>

LATIHAN 3: MEMBUAT DAN MENJALANKAN CONTAINER

Kita akan menggunakan image yang sudah kita buat dan kita coba untuk menjalankan image
kita didalam Docker container.

▸ pertama - tama kita kan mengguanakan image default nginx untuk membandingkan dengan

image yang sudah kita buat tadi

1 docker run --name default-nginx -d -p 8080:80 nginx

coba akses melalui browser dengan mengetikan localhost:8080, jika tampil halaman nginx
berarti kita sudah berhasil menjalankan Docker container, bisa juga dengan mengetikan
docker ps di terminal untuk melihat apakah Docker container kita sudah berjalan

▸ selanjutnya, kita akan menjalankan image kita sendiri

1 docker run --name mynginx -d -p 8081:80 myimage:1.0

sekarang coba akses lagi melalui browser dengan mengetikan localhost:8081, jika web kita
tampil maka kita sudah berhasil membuat image kita sendiri dan menjalankannya di dalam
Docker container.

Selesai! Anda kini sudah bisa membuat Docker Container dan menggunakannya.

MODUL DOCKER 18
DOCKER IMAGE REGISTRY

Docker registry adalah penyimpanan untuk Docker Image anda. Setelah anda membuat Docker
Image, anda dapat mengupload ke registry publik seperti Docker Hub atau registri anda sendiri
yang berjalan di belakang firewall anda.

Menggunakan klien Docker, anda dapat mencari Image yang sudah diterbitkan dan kemudian
mendownload image ke Host Docker anda untuk membangun wadahnya.

Docker Hub menyediakan baik penyimpanan publik dan private untuk Image. Penyimpanan
publik dapat dicari dan dapat didownload oleh siapa saja. Penyimpanan pribadi dikecualikan dari
hasil pencarian dan hanya anda serta pengguna tertentu yang dapat mendownload dan
menggunakannya untuk membangun image atau container. Anda dapat mendaftar untuk paket
penyimpanan pada data center sesuai lokasi bisnis anda.

Untuk mempermudah pembelajaran docker diharapkan untuk membuat akun di Docker Hub.
https://hub.docker.com

LATIHAN 4: MENGUPLOUAD IMAGE KE DOCKER HUB

Setelah selesai membuat akun di Docker Hub, kita juga harus login melalui terminal untuk bisa
mengupload image kita.

▸ Perintah login melalui terminal

1 docker login

masukan credentials berupa username dan password

▸ Sebelum bisa push image, kita harus membuat tag image baru. kita harus menyertakan

nama user kita untuk bisa dikenali oleh Docker Hub.

1 docker tag <nama-image-lama>:<tag-image> <nama-akun-dockerhub>/<nama-image-


baru>:<nama-tag>

MODUL DOCKER 19
▸ Mari kita terapkan perintah diatas untuk mengganti nama image kita

1 docker tag myimage:1.0 deadlyug/myimage:1.0

ganti deadlyug dengan nama user masing - masing

▸ Pastikan tag image baru kita sudah berhasil dibuat

1 docker images

▸ Langkah selanjutnya, setelah kita pastikan image sudah dibuat. kita bisa mulai untuk push

atau mengupload image kita ke Docker Hub

1 docker push deadlyug/myimage:1.0

▸ Untuk memastikan image sudah terupload kita bisa cek di hub.docker.com/u/nama-akun

DOCKER COMPOSE

Sambil mengigat materi sebelumnya, kita sudah belajar tentang Dockerfile, yaitu sebuah text
sederhana yang digunakan untuk membangun sebuah Docker Image.

Lalu apa perbedaannya dengan Docker Compose ?

Docker compose digunakan oleh user untuk mendefinisikan sebuah atau beberapa services yang
nantinya akan digunakan untuk membentuk sebuah aplikasi dalam kesatuan.

Services yang dimaksud ini bisa berupa service website (webserver) atau database ataupun
keduanya tergantung dengan kebutuhan dari user.

Docker Compose ini menggunakan struktur bahasa YAML.

MODUL DOCKER 20
KEGUNAAN DOCKER COMPOSE

Setelah mengetahui perbedaan Dockerfile dengan Docker Compose sekarang kita perlu tahu
apa sih kegunaannya ?

Docker Compose digunakan user untuk mempercepat dan mempermudah pembuatan service
atau aplikasi pada sebuah container.

Berbeda dengan cara tradisional, yang biasanya user akan membuat satu persatu services
container dengan menggunakan Docker CLI, pada Docker Compose kebutuhan pembuatan

aplikasi akan dijadikan pada sebuat wadah text bernama docker-compose.yml, pada file ini
user bisa mendefinisikan service - service yang nantinya akan digunakan oleh aplikasi dan
ketika struktur service sudah selesai dibuat user bisa menjalankan servicenya hanya dengan 1
baris perintah : docker-compose up

Sampai disini apakah ada hal yang ingin ditanyakan ? silakan komentar dibawah ya sebelum kita
lanjut ke pembahasan selanjutnya.

LATIHAN 4: MEMBUAT DOCKER COMPOSE

▸ Pertama - tama kita akan membuat folder tempat kita membuat file docker compose.

1 mkdir mycontainer

▸ Selanjutnya kita membuat file bernama docker-compose.yaml

1 touch docker-compose.yaml

▸ Setelah itu kita bisa menuliskan baris - baris struktur docker-compose yang didalamnya ada

service, port dan sebagainya. seperti dibawah ini:

1 version: "3.3"

2 services:

3 web:

4 image: deadlyug/myimage:1.0

5 ports:

6 - 8081:80

7 restart: always

MODUL DOCKER 21
!! yaml file sangat sensitif dengan spasi, pastikan spasinya persis sama seperti diatas.

▸ Akhirnya kita bisa mengeksekusi perintah:

1 docker-compose up

▸ Agar container kita bisa jdalan dilatar belakang, kita hars menambahkan option: -d
seperti ini:

1 docker-compose up -d

▸ Untuk mematikan container menggunakan docker compose cukup mengesekusi perintah:

1 docker-compose down

Setelah kita mengnal docker compose kita tidak perlu lagi mengetikan perintah yang panjang
ketika aplikasi yang kita bangun sudah agak kompleks, seperti nantinya kita menambahkan
service databse, menambahkan service php, dan sebagainya. cukup dengan perintah docker-
compos up semua langsung dibuatkan oleh docker-compose.

MENGAKSES CONTAINER

Setalah kita sudah membuat container kita sendiri, menggunakan perintah docker dan juga
perintah docker-compose. mungkin ada yang bertanya apakah kita bisa masuk kedalam
container selayaknya kita login menggunakan ssh ke dalam server? tentu saja bisa, pada materi
kali ini kita membahas tentang bagaimana cara mengakses Docker container, dan mengeksekusi
perintah didalamnya.

Sebelumnya seperti biasa kita akan membahas struktur commandnya terlebih dahulu,

▸ Untuk masuk kedalam container kita bisa mengetikan perintah ini:

1 docker exec -it <nama-container-atau-id-container> /bin/bash

2 docker exec -it <nama-container-atau-id-container> /bin/sh

▸ Mengeksekusi perintah yang ada didalm container

1 docker exec -it <nama-container-atau-id-container> <path-aplikasi>

MODUL DOCKER 22
LATIHAN 5: MENGAKSES CONTAINER

Bagaimana jika kita masuk ke container yang tadi kita sudah buat? langsung saja kita eksekusi
perintah berikut:

1 docker exec -it mynginx /bin/bash

Setelah kita masuk kedalam kita bisa melakukan banyak hal seperti jika kita login kedalam
suatu sever virtual yang utuh, perbedaannya suatu Docker container biasanya sudah dibatasi
pengguanan command didalamnya, dan juga package-package yang tersedia hanya package
yang dibutuhkan oleh container tersebut.

Mari kita mencoba mengedit file index.html yang tadi sudah kita masukan kedalam melalui
Dockerfile.

1 cd /usr/share/nginx/html

2 echo "<h1>Perubahan dilakukan dari dalam container</h1>" > index.html

Nah jika kita lihat kembali melalui browser, isi dari web kita sudah berubah.
jangan lupa untuk keluar dari container dengan mengetikan perintah
Mari kita coba mengeksekusi perintah dari luar container. exit

1 docker exec -t mynginx whoami

kembali ke docker-compose, pada saat kita sudah menggunakan perintah docker-compose


down. docker akan menghapus container kita. bagaimana dengan perubahan yang kita lakukan
didalam container tadi? tentu saja akan terhapus juga, lalu bagaimana supaya data kita tidak
terhapus?

jawabannya ada dimateri selanjutnya, yaitu Docker Volume.

MODUL DOCKER 23
DOCKER VOLUME

Volume adalah mekanisme untuk menyimpan data yang dihasilkan dan digunakan oleh
container Docker. Jika mount dan bind bergantung pada struktur direktori dan OS dari host,
maka volume sepenuhnya dikelola oleh Docker. Volume memiliki beberapa keunggulan
dibandingkan mount dan bind:

▸ Volume lebih mudah untuk dibackup atau dimigrasi daripada bind mount.

▸ Anda dapat mengelola volume menggunakan perintah Docker CLI atau API Docker.

▸ Volume berfungsi pada container Linux dan Windows.

▸ Volume dapat dibagikan dengan lebih aman di antara banyak kontainer.

▸ Driver volume memungkinkan Anda menyimpan volume di remote host atau penyedia cloud,

untuk mengenkripsi konten volume, atau menambahkan fungsionalitas lainnya.


▸ Volume baru dapat memiliki kontennya yang telah diisi sebelumnya oleh sebuah wadah.

▸ Volume di Docker Desktop memiliki kinerja yang jauh lebih tinggi daripada bind mount dari

host Mac dan Windows.

MODUL DOCKER 24
LATIHAN 6: MEMBUAT DOCKER VOLUME

Untuk membuat volume pada docker, cukup menggunakan perintah berikut:

1 docker volume create myvolume

Untuk menampilkan daftar docker volume yang berada pada host, silakan untuk menjalankan
perintah ini.

1 docker volume list

Untuk menampilkan informasi docker volume yang berada pada host, silakan untuk
menjalankan perintah ini.

1 docker volume inspect myvolume

Memasangkan volume kita pada docker compose file.

1 version: "3.3"

2 services:

3 web:

4 image: deadlyug/myimage:1.0

5 ports:

6 - 8081:80

7 restart: always

8 volumes:

9 - myvolume:/usr/share/nginx/html10
11 volumes:

12 myvolume:

13 external: true

Jalankan kembali container dengan perintah berikut

1 docker-comose up -d --force-recreate

MODUL DOCKER 25
option --force-recreate, ada option untuk memaksa docker-compose membuat
container dari awal

Untuk menguji konten pada volume yang telah ditambahkan ke container, silakan masuk
kembali ke dalam container dengan perintah:

1 docker exec -it mycontainer-web-1 /bin/bash.

Mari kita mencoba mengedit file index.html kembali

1 cd /usr/share/nginx/html

2 echo "<h1>Perubahan sudah menggunakan Docker Volume</h1>" > index.html

exit dan coba matikan container dengan perintah:

1 docker-compose down

Jalankan kembali container dengan perintah:

1 docker-compose up -d

Jika berhasil itu artinya kita Alhamdulillah sudah sampai ke-akhir modul ini, kita sudah belajar
banyak hal tentang docker, dari membuat image, mengupload image kita, menjalankan
container, mengelola container menggunakan docker-compose, untuk menambah pemahaman
kita tentang bagaimana docker bekerja mari kita tutup modul ini dengan mendeploy aplikasi
WordPress.
Jika ingin menghapus docker volume, cukup dengan dengan perintah ini:

1 docker volume rm myvolume

Jika error, pastikan docker container sudah dimatikan. setelah itu coba hapus kembali docker volume.

MODUL DOCKER 26
PENUTUP: MENDEPLOY APLIKASI WORDPRESS

Seperti biasa kita akan membuat folder terlebih dahulu:

1 mkdir wordpress

Setalah itu kita membuat docker-compose.yaml yang isinya:

1 version: '2'
2 services:
3 mariadb:
4 image: docker.io/bitnami/mariadb:10.3
5 volumes:
6 - 'mariadb_data:/bitnami/mariadb'
7 environment:
8 # ALLOW_EMPTY_PASSWORD is recommended only for development.
9 - ALLOW_EMPTY_PASSWORD=yes
10 - MARIADB_USER=bn_wordpress
11 - MARIADB_DATABASE=bitnami_wordpress
12 wordpress:
13 image: docker.io/bitnami/wordpress:5
14 ports:
15 - '8082:8080'
16 - '443:8443'
17 volumes:
18 - 'wordpress_data:/bitnami/wordpress'
19 depends_on:
20 - mariadb
21 environment:
22 # ALLOW_EMPTY_PASSWORD is recommended only for development.
23 - ALLOW_EMPTY_PASSWORD=yes
24 - WORDPRESS_DATABASE_HOST=mariadb
25 - WORDPRESS_DATABASE_PORT_NUMBER=3306
26 - WORDPRESS_DATABASE_USER=bn_wordpress
27 - WORDPRESS_DATABASE_NAME=bitnami_wordpress
28 - WORDPRESS_USERNAME=admin
29 - WORDPRESS_PASSWORD=admin
30 volumes:
31 mariadb_data:
32 driver: local
33 wordpress_data:
34 driver: local

Moment of truth, eksekusi perintah di bawah ini. setelah berhasil silahkan akses melalui browser
localhost:8082

1 | docker-compose up -d

MODUL DOCKER 27
DAFTAR PUSTAKA

niagahoster | https://www.niagahoster.co.id/blog/docker-tutorial/

garudacyber | https://news.garudacyber.co.id/

belajarlinux.id | https://belajarlinux.id/docker-pengenalan-docker-compose/

Powered by Wiki.js

MODUL DOCKER 28

Anda mungkin juga menyukai