• Erwindo Sianipar
    Interaction designer
    Software Engineer
  • blog
    craft
    portfolio
    snippet
    guestbook
    update
    login
ES
Caritas in VeritateMade with love from Jakarta
© 2019-2025 Erwindo Sianipar. All Rights Reserved.
termspoliciescookiesanalytics

Belajar Merilis Aplikasi di Docker

Menjalankan aplikasi dengan kontainer Docker

avatar
Posted by Erwindo SianiparFeb 13, 2020 (5 years ago) · 5 min read
id
DockerEngineering
https://images.unsplash.com/photo-1578335371893-da19ce4ba0cc
subtitle
Menjalankan aplikasi dengan kontainer Docker
comments
title
Belajar Merilis Aplikasi di Docker
slug
belajar-merilis-aplikasi-di-docker
published
Feb 13, 2020
tags
All
Docker
Engineering
image
https://images.unsplash.com/photo-1578335371893-da19ce4ba0cc
active
active
lang
id
type
blog
Photo by Johan Taljaard on Unsplash

Hari ini saya mempelajari satu alat yang sangat berguna dalam pengembangan aplikasi. Alat ini bernama Docker, di mana Docker ini sedikit memiliki kesamaan dengan konsep Virtual Machine namun dengan fitur yang lebih memudahkan lagi dalam perilisan aplikasi.

Apa itu Docker?

Docker adalah proyek dengan kode sumber terbuka sebagai produk atau layanan yang ditujukan untuk pengembang aplikasi untuk membangun, mengemas, dan menjalankan aplikasi secara virtual yang berada satu tingkat dalam sistem operasi di dalam sebuah kontainer.
Infrastruktur Docker ini sendiri berada di atas sistem operasi berbasis Unix, selanjutnya aplikasi-aplikasi yang akan di jalankan berada di dalam kontainer. Kontainer-kontainer ini adalah paket-paket aplikasi yang siap untuk dijalankan secara bersamaan.
Visualisasi infrastruktur Docker
Visualisasi infrastruktur Docker
Gambar di atas memvisualisasikan bahwa aplikasi-aplikasi yang siap untuk dijalankan dari di dalam sebuah kontainer, di mana kontainer itu sendiri berjalan di atas Docker.

Virtual Machine dan Docker

Seperti namanya Virtual Machine (VM) adalah sebuah mesin virtual yang memiliki kemampuan untuk menciptakan mesin komputer dan memiliki kemampuan yang sama dengan mesin komputer penciptanya.
Jika infrastruktur proyek yang dikerjakan menggunakan konsep microservice, konsep VM di atas akan cukup merepotkan, karena harus menginstalasi satu sistem operasi untuk media di mana aplikasi berjalan, coba bayangkan jika proyek tersebut memiliki beberapa aplikasi, maka harus memasang sistem operasi untuk masing-masing microservice dan belum termasuk dengan pemasangan hal yang lain agar aplikasi dapat berjalan dengan baik sesuai dengan kebutuhannya.
Docker sendiri telah mempermudah tahapan-tahapan perilisan aplikasi dengan cara di atas, di mana semua aplikasi-aplikasi berada di dalam satu kontainer yang berajalan di atas Docker. Paket atau aplikasi pendukung hanya perlu dipasang sekali di dalam Docker Image dan jika aplikasi-aplikasi menggunakan konsep microservice maka setiap aplikasinya dapat berbagi sumber yang sama.

Docker Image

Docker Image adalah sebuah objek yang hanya dapat dibaca. Objek ini merupakan aplikasi yang sudah dibuat. Docker Image berfungsi untuk membuat aplikasi yang nanti akan dijalankan di kontainer Docker. Kontainer Docker memungkinkan untuk menjalankan beberapa Docker Image sekaligus di dalamnya. Secara sederhana, Docker Image ini merupakan aplikasi yang sudah siap dijalankan, biasanya sudah dalam bentuk yang dapat dieksekusi (executable).

Kontainer Docker

Kontainer Docker dapat dikatakan sebagai sebuah media tempat aplikasi-aplikasi berjalan. Setiap kontainer Docker yang disimpan terdapat Docker Image di dalamnya. Kontainer Docker juga memungkinkan untuk melakukan duplikasi. Kontainer Docker ini nantinya dapat dijalankan sehingga aplikasi dapat digunakan selayaknya seperti aplikasi yang sudah dirilis.

Menggunakan Docker

Untuk menggunakan Docker, maka diperlukan Docker yang sudah terpasang di sistem komputer, lakukan pemasangan Docker di lokal komputermu, untuk cara pemasangannya silahkan ikuti tutorial dari tautan di bawah ini.
Get Docker
Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.
Get Docker
https://docs.docker.com/get-docker/
Get Docker
Pertama buat sebuah folder untuk menempatkan proyek Docker.
Selanjutnya perlu membuat satu fail Dockerfile yang berguna untuk initialisasi Docker.
Perintah di atas akan membuat satu Dockerfile yang masih kosong, yang nanti akan diisi perintah untuk menjalankan Docker. Dan selanjutnya isi fail Dockerfile dengan perintah di bawah ini.
Konfigurasi Docker di atas sudah cukup untuk aplikasi sederhana yang akan dibuat.

Antarmuka Aplikasi Pemrograman di Docker

Selanjutnya membuat Antarmuka Aplikasi Pemrograman (API) sederhana yang akan dijalankan di Docker. Dalam studi kasus kali, ini aplikasi akan dibuat menggunakan bahasa pemrograman Golang, aplikasinya hanya akan menampilkan respon berupa pesan dengan format JSON saat dikunjungi.
Pertama-tama, buatlah fail dengan nama main.go.
Selanjutnya untuk menjalankan API tersebut dengan Docker, buatlah satu fail dengan nama docker-compose.yml dan isi dengan kode di bawah ini.

Jalankan Docker

Untuk menjalankan aplikasi tersebut dengan Docker terbilang cukup mudah, karena dengan sistem Docker Compose yang sudah dibuat sebelumnya.
Perintah untuk menjalankan Docker.
Dengan perintah di atas, maka aplikasi akan dibuatkan menjadi executable dan dijalankan secara langsung oleh Docker, untuk menjalankan aplikasi tersebut akses aplikasi melalui alamat berikut di aplikasi peramban atau aplikasi penguji protokol transfer hipertext.
🌐
http://localhost:8080

Menghentikan Docker

Untuk menghentikan aplikasi maka hanya menjalankan perintah takedown dengan perintah berikut.
More from Erwindo SianiparSee all

https://images.unsplash.com/photo-1426927308491-6380b6a9936f

Teknologi yang saya gunakan

Alat yang mempermudah penulisan kode dan manajemen tugas
Jan 05(5 years ago)
https://images.unsplash.com/photo-1578335371893-da19ce4ba0cc

Belajar Merilis Aplikasi di Docker

Menjalankan aplikasi dengan kontainer Docker
Feb 13(5 years ago)
# Make new project folder mkdir BELAJAR-DOCKER # Go to folder cd BELAJAR-DOCKER
# Make a new file touch Dockerfile
# Use Alpine Golang version FROM golang:alpine # Go to working directory WORKDIR /work # Copy all file from root into working directory ADD . . # Make an app into executable RUN go build -o /hello . # Back to root directory WORKDIR / # Remove unused working directory RUN rm -r /work # Open port :8080 EXPOSE 8080 # Executing the app CMD ["/hello"]
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { // New gin engine g := gin.New() // Make root handler g.GET("/", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "Hello World", }) }) // Serving the app via port :8080 g.Run(":8080") }
version: "3.9" services: web: build: context: . dockerfile: Dockerfile image: hello/hello container_name: hello ports: - 8080:8080
# Run Docker and quit with detach docker compose up -d
# Takedown service Docker docker compose down