← Semua tulisan
Docker

Docker Dasar

Menginstall Docker

  • instal docker desktop

  • Jika docker tidak bisa berjalan karena virtualization :

    • cek enabled cpu virtualization di properties my computer kalau enabled aman tapi kalau not enabled bisa di atur di bios

    • kalau enabled ->

      • buka shell dengan admistrator ketik wsl --install

      • bcdedit /set hypervisorlaunchtype auto

Mengecek Docker

docker version

Docker Registry

Docker registry adalah tempat kita menyimpan Docker Image, Dengan menggunakan Docker Registry, kita bisa menyimpan image yang kita buat, dan bisa digunakan di Docker Daemon dimanapun selama bisa terkoneksi ke Docker registry.

Contoh Docker Registry

  1. Docker Hub : http://hub.docker.com

  2. Digital Ocean Container Registry

  3. Goodogle Cloud Container Registry

  4. Amazon Elastic Container Registry

  5. Azure Container Registry

Docker Image

mirip seperti installer aplikasi, didalam terdapat aplikasi dan dependency

Sebelum kita bisa menjalankan aplikasi di DOcker, kita perlu memastikan memiliki Docker Image aplikasi tersebut.

Melihat Docker Image di dalam Docker Daemon

docker image ls

Download Docker Image

docker image pull namaimage:tag => https://hub.docker.com

Menghapus Docker Image dari Daemon

docker image rm namaimage:tag

Docker Container

Jika Docker Image seperti Installer aplikasi, maka Docker Container mirip seperti aplikasi hasil installernya.

Satu Docker mage bisa digunakan untuk membuat beberapa Docker Container, asalkan nama Docker Containernya berbeda.

Jika kita sudah membuat Docker Container, maka docker image yang digunakan tidak bisa dihapus, hal ini dikarenakan sebenarnya docker Container tidak meng copy isi dockerimage, tapi hanya menggunakan isinya saja.

Status Container

saat kita membuat Container, secara default Container tersebut tidak akan berjalan, mirip seperti ketika kita menginstall aplikasi, jika tidak kita jalankan, maka aplikasi tersebut tidak akan berjalan, begitu juga container.

Oleh karena itu, setelah membuat container, kita perlu menjalankan nya jika memang ingin menjalankan containernya.

Melihat Container yang Sedang berjalan dan Tidak

docker container ls -a

Melihat Container yang sedang berjalan saja

docker container ls

Membuat Container

docker container create --name namacontainer namaimage:tag

Menjalankan Container

docker container start containerId/namacontainer

Menghentikan Container

docker container stop containerId/namacontainer

Menghapus Container

docker container rm containerId/namacontainer

Container Log

docker container logs containerId/Namacontainer

atau secara realtime

docker container logs -f containerId/Namacontainer

Container Exec

saat kita membuat container, aplikasi yang terdapat di dalam container hanya bisa diakses dari dalam container, oleh karena itu, kadang kita perlu masuk ke dalam container nya itu sendiri. Untuk masuk ke dalam container, kita bisa menggunakan fitur Container Exec, dimana digunakan untuk mengeksekusi kode program yang terdapat di dalam container.

docker container Exec -i -t containerId/namacontainer /bin/bash

  1. -i adalah argumen interaktif, menjaga input tetap aktif

  2. -t adalah argumen untuk alokasi pseudo-TTY (terminal akses)

  3. /bin/basah contoh kode program yang terdapat di dalam container

Container Port

Saat menjalankan container, container tersebut terisolasi di dalam Docker, artinya sistem Host (misal laptop kita), tidak bisa mengakses aplikasi yang ada di dalam container secara langsung, salah satu caranya adalah harus menggunakan Container Exec untuk masuk ke dalam container nya.

Biasanya, sebuah aplikasi berjalan pada port tertentu, misal saat kita menjalankan aplikasi Redis, dia berjalan pada port 6379, kita bisa melihat port apa yang digunakan ketika melihat semua daftar container.

Port Forwarding

Docker memiliki kemampuan untuk melakukan port forwarding, yaitu meneruskan sebuah port yang terdapat di sistem Host nya ke dalam Docker Container.

Cara ini cocok jika kita ingin mengekspos port yang terdapat di container ke luar melalui sistem Hostnya.

untuk melakukan port forwarding, kita bisa menggunakan perintah berikut ketika membuat containernya :

docker container create --name namacontainer --publish posthost:portcontainer image:tag

jika kita ingin melakukan port forwarding lebih dari satu, kita bisa tambahkan dua kali parameter --publish, --publish juga bisa disingkat menggunakan -p

Container Environment Variable

docker container create --name namacontainer --env KEY="value" --env KEY="value" image:tag

Container Stats

docker container stats

Container Resourse Limit

docker container create --name smallnginx --publish 8081:80 --memory 100m --cpus 0.5 nginx:latest

Bind Mount

docker container create --name namacontainer --mount "type=bind,source=folder,destination=folder,readonly" image:tag

Docker Volume

untuk melihat volume docker volume ls

untuk membuat volume docker volume create namavolume

untuk menghapus volume docker volume rm namavolume

Container Volume

urutan pembuatan adalah buat volume terlebih dahulu baru container

docker volume create mongodata

lalu

docker container create --name mongovolume --mount "type=volume, source=mongodata,destination=/data/db" --publish 27019:27017 --env MONGO_INITDB_ROOT_USERNAME=eko --env MONGO_INITDB_ROOT_PASSWORD=eko mongo:latest

Backup Volume