Skip to content

Docker Container

  • Jika Docker Image seperti installer aplikasi, maka Docker Container mirip seperti aplikasi hasil installernya
  • Satu Docker Image bisa digunakan untuk membuat beberapa Docker Container, asalkan nama Docker Container nya 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 Docker Image, tapi hanya menggunakannya isinya saja

Melihat List Container

  • Melihat List Semua container
    docker ps -a
    
  • Melihat List Container yang berjalan
    docker ps
    

Membuat Container

docker container create {nama image}
docker container create nginx
  • Membuat container dengan nama custom
    docker container create --name my-nginx nginx
    docker ps -a
    
  • Membuat container berjalan di background
    docker container create -d --name my-nginx nginx
    

Menjalankan Container

docker start {nama container}
docker start my-nginx

Menghentikan Container

docker stop {nama container}
docker stop my-nginx

Container Log

  • Kadang saat terjadi masalah dengan aplikasi yang terdapat di container, sering kali kita ingin melihat detail dari log aplikasinya
  • Hal ini dilakukan untuk melihat detail kejadian apa yang terjadi di aplikasi, sehingga akan memudahkan kita ketika mendapat masalah
docker logs {nama container}
docker logs my-nginx

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
  • Dengan fitur exec juga kita bisa menjalankan perintah didalam container dari luar container

Mengakses kedalam container

docker exec -it my-nginx /bin/bash

Menjalankan perintah dari luar container

docker exec my-nginx apt-upate

Port Forwarding

docker container create --name mynginx -p 8080:80 nginx
akses {server ip address}:8080 di browser

Environment Variable

  • Saat membuat aplikasi, menggunakan Environment Variable adalah salah satu teknik agar konfigurasi aplikasi bisa diubah secara dinamis
  • Dengan menggunakan environment variable, kita bisa mengubah-ubah konfigurasi aplikasi, tanpa harus mengubah kode aplikasinya lagi
  • Docker Container memiliki parameter yang bisa kita gunakan untuk mengirim environment variable ke aplikasi yang terdapat di dalam container
    docker container create -d --name mymysql -e MYSQL_ROOT_PASSWORD=1234 mysql
    

Container stats

  • Saat menjalankan beberapa container, di sistem Host, penggunaan resource seperti CPU dan Memory hanya terlihat digunakan oleh Docker saja
  • Kadang kita ingin melihat detail dari penggunaan resource untuk tiap container nya
  • Untungnya docker memiliki kemampuan untuk melihat penggunaan resource dari tiap container yang sedang berjalan
docker container stats

Resource Limit

  • Saat membuat container, secara default dia akan menggunakan semua CPU dan Memory yang diberikan ke Docker (Mac dan Windows), dan akan menggunakan semua CPU dan Memory yang tersedia di sistem Host (Linux)
  • Jika terjadi kesalahan, misal container terlalu banyak memakan CPU dan Memory, maka bisa berdampak terhadap performa container lain, atau bahkan ke sistem host
  • Oleh karena itu, ada baiknya ketika kita membuat container, kita memberikan resource limit terhadap container nya
docker container create --name mynginx --publish 8081 --memory 100m --cpus 1 nginx

Docker run

docker run kurang lebih sama dengan docker container create bedanya docker run langsung menjalankan container tersebut