Introduction to Docker

Ezza Ardiala
PPLSalemba
Published in
3 min readApr 15, 2019

What is Docker ???

Sebagai seorang programmer, kita pasti tidak asing dengan kata Docker. Namun apakah sebenarnya Docker itu? Setelah berkelana di Internet, akhirnya saya dapat menyimpulkan apa itu Docker dengan bahasa yang mudah dimengerti.

“Docker adalah sebuah platform yang menyediakan sebuah layanan dimana kita dapat membangun dan menjalankan sebuah aplikasi dengan mudah”

Ide docker sebenarnya didasari pada pengemasan aplikasi ke dalam sebuah container yang nantinya dapat dijalankan pada segala macam environment yang berbeda-beda.

Core Concepts

Terdapat tiga konsep dasar yang ada pada docker. Tiga hal tersebut adalah:

  • Docker Image
  • Docker Registry
  • Docker Container

Docker Image

Adalah sebuah template yang digunakan sebagai blueprint untuk membuat Docker Container. Analogi lain yang dapat digunakan adalah pikirkan Docker Image sebagai sebuah class dan Docker Container sebagai sebuah object yang dibuat oleh class tersebut. Docker Image dapat dibuat menggunakan sebuah file yang bernama Dockerfile. Docker file adalah sebuah file yang menetukan langkah-langkah yang diperlukan dalam pembuatan sebuah Docker Image.

Contoh Dockerfile

Docker Registry

Pikirkan ini sebagai GitHub/GitLab untuk Docker Image. Docker Registry adalah sebuah repository untuk menyimpan dan mengambil Docker Image.

Docker Container

Container adalah hasil dari Docker Image. Container hampir mirip dengan sebuah Virtual Machine(VM) yang menjalankan aplikasi dan dependenciesnya. Di containerlah biasanya aplikasi nantinya akan dijalankan.

Perjalanan Hidup Container

Implementasi Kelompok

Continuous Integration

Ini adalah proses integrasi kode pada sebuah repository yang dilakukan secara otomatis dan bertujuan untuk mendeteksi error sehingga dapat segera melakukan perbaikan jika terjadi kesalahan.

Pada kelompok kami, CI digunakan untuk melakukan testing yang dilakukan secara otomatis.

Stage yang ada pada kelompok kami

Testing

Pada proses testing kelompok kami memperlihatkan coverage. Coverage berperan untuk memberikan informasi untuk bagian kode mana saja yang sudah dilakukan testing.

Proses testing menggunakan coverage

Continuous Deployment

Ini adalah tahap deploy aplikasi yang dilakukan secara otomatis pada product environment. Tahap ini dilakukan jika proses testing sudah lulus dan branch berada pada staging.

Dalam melakukan deploy otomatis seharusnya memanfaatkan penggunaan stack yang ada pada Portainer.

Orchestration

Dikarenakan kita menggunakan serverless. Maka flow penggunaan container sedikit berbeda. Dalam hal ini kontainer yang dibuat ada 2, untuk backend dan frontend.

Cara mengkoneksikan frontend dan backend adalah dengan menggunakan fetch pada bagian frontend.

koneksi antara frontend dan backend

--

--