Docker Container

Dalam dunia pengembangan perangkat lunak, Docker telah menjadi sebuah teknologi yang semakin populer. Dengan memungkinkan pengguna untuk membuat dan mengelola container dengan mudah, Docker mempermudah proses pengembangan dan implementasi aplikasi. Namun, bagi sebagian orang, Docker dan konsep container mungkin masih terdengar asing. Artikel ini akan menjelaskan secara detail tentang apa itu Docker dan bagaimana penggunaannya dalam lingkungan pengembangan perangkat lunak.

Dalam kesempatan kali ini saya sudah menginstall Docker Desktop pada device saya dan sudah di LogIn-kan, berikut ini merupakan tampilannya.


Download Image Nginx, Phpmyadmin, Apache Tomcat Untuk Membuat Web Server Dan Database Mysql Pada Docker Hub.

Untuk membuat web server dan database MySQL menggunakan Docker Hub, langkah pertama adalah mendownload image Nginx, PhpMyAdmin, dan Apache Tomcat ke dalam Docker Hub. Image-image tersebut dapat diunduh dengan menjalankan perintah-perintah Docker pada terminal atau command prompt, dengan memperhatikan sintaks dan opsi yang sesuai.

Untuk mendownload image Nginx, PhpMyAdmin serta Mysql, dan Apache Tomcat dapat dilakukan dengan menjalankan perintah berikut pada terminal atau command prompt:

Dari gambar di atas saya sudah menginstall semuanya jadi tampilannya seperti itu, jika belum maka akan mendownload terlebih dahulu.

Membuat Container Untuk Development, Port Nya 8081 Melewati Port Private 8080.

Untuk membuat container untuk development dengan menggunakan port 8081 dan melewati port private 8080 serta untuk mengatur tampilan web nya dapat menggunakan perintah berikut ini.

Command docker run -d --name fahmimf-mywebsite-container -p 8081:8080 tomcat:latest berfungi untuk membuat container yang berjalan pada image Tomcat dengan opsi yang telah ditentukan sebelumnya. Container tersebut diberi nama "fahmimf-mywebsite-container" dan dijalankan di latar belakang. Selain itu, port 8081 pada host diarahkan ke port 8080 pada container Tomcat sehingga aplikasi yang dijalankan pada Tomcat dapat diakses melalui http://localhost:8081. Berikut adalah penjelasan dari setiap kata dalam perintah tersebut :

  • docker: merujuk pada program Docker yang digunakan untuk mengelola container
  • run: perintah untuk membuat dan menjalankan container
  • -d: opsi yang menandakan bahwa container dijalankan di dalam mode "detached" atau latar belakang, sehingga tidak menempati terminal yang sedang digunakan
  • --name fahmimf-mywebsite-container: opsi untuk memberikan nama pada container yang akan dibuat, dalam hal ini diberi nama "fahmimf-mywebsite-container"
  • -p 8081:8080: opsi untuk mengaitkan port yang ada pada host dengan port yang ada pada container. Dalam hal ini, port 8081 pada host diarahkan ke port 8080 pada container Tomcat. Artinya, ketika kita mengakses port 8081 pada host, maka sebenarnya kita mengakses port 8080 pada container Tomcat.
  • tomcat:latest: merujuk pada image Tomcat yang akan digunakan untuk membuat container, dengan tag "latest". Artinya, kita akan menggunakan image Tomcat terbaru yang tersedia di Docker Hub.

Command docker exec -it fahmimf-mywebsite-container /bin/bash adalah perintah untuk masuk ke dalam terminal di dalam container "fahmimf-mywebsite-container" yang telah dibuat sebelumnya menggunakan perintah docker run. Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • docker: merujuk pada program Docker yang digunakan untuk mengelola container
  • exec: perintah untuk mengeksekusi sebuah perintah di dalam container yang sedang berjalan
  • -it: opsi yang menandakan bahwa kita ingin masuk ke dalam mode interaktif (interactive mode) di dalam terminal di dalam container. Opsi ini digunakan agar kita dapat berinteraksi dengan terminal di dalam container dan menjalankan perintah-perintah di dalamnya.
  • fahmimf-mywebsite-container: nama container yang ingin diakses terminalnya.
  • /bin/bash: perintah untuk memasuki terminal di dalam container dengan shell Bash.

Command cp -R Webapps.dist/* Webapps adalah perintah untuk menyalin seluruh isi direktori "Webapps.dist" ke dalam direktori "Webapps". Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • cp: singkatan dari "copy", perintah untuk menyalin file atau direktori.
  • -R: opsi yang menandakan bahwa perintah cp akan menyalin isi dari sebuah direktori secara rekursif (termasuk sub-direktori dan file-file di dalamnya).
  • Webapps.dist/*: lokasi file yang ingin disalin. Dalam hal ini, seluruh isi direktori "Webapps.dist" akan disalin.
  • Webapps: lokasi tempat file disalin. Dalam hal ini, seluruh isi direktori "Webapps.dist" akan disalin ke dalam direktori "Webapps".

Dalam konteks Docker, perintah cp ini biasanya digunakan ketika kita ingin menyalin file atau direktori dari atau ke dalam container. Dalam perintah Cp -R Webapps.dist/* Webapps, kita menyalin isi direktori "Webapps.dist" dari dalam container ke direktori "Webapps" yang ada di dalam container. Dengan melakukan ini, kita dapat mengupdate dan mengganti isi direktori "Webapps" dengan versi yang lebih baru dari "Webapps.dist" untuk mengubah aplikasi yang dijalankan pada container.

Command exit berfungsi untuk keluar dari program yang sedang dijalankan.


Membuat Database Mysql Pada Container Yang Sudah Dibuat, Lalu namakan Database dengan nama fahmimf serta buatkanlah table di dalam databse itu yang berisi tentang biodata fahmimf.

Sebelum membuat database jalankan terlebih dahulu mysql yang sudah di install dengan menggunakan perintah berikut ini. 

Command docker container run --name fahmimf-mydb-container -e MYSQL_ROOT_PASSWORD=12345 -d mysql:latest adalah perintah untuk menjalankan container MySQL dengan nama "fahmimf-mydb-container" dan menggunakan versi terbaru MySQL (ditandai dengan tag "latest"). Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • docker: merujuk pada program Docker yang digunakan untuk mengelola container
  • container: opsi yang menandakan bahwa kita akan membuat sebuah container baru.
  • run: perintah untuk menjalankan sebuah container baru.
  • --name fahmimf-mydb-container: opsi yang menentukan nama dari container yang akan dibuat.
  • -e MYSQL_ROOT_PASSWORD=12345: opsi yang menentukan variabel lingkungan (environment variable) di dalam container. Dalam hal ini, variabel lingkungan yang didefinisikan adalah "MYSQL_ROOT_PASSWORD" dengan nilai "12345", yang digunakan untuk menentukan kata sandi root untuk MySQL.
  • -d: opsi yang menandakan bahwa container dijalankan dalam mode daemon (background mode), yang berarti container akan terus berjalan di latar belakang.
  • mysql:latest: nama dan tag untuk image Docker yang akan digunakan untuk membuat container. Dalam hal ini, image Docker yang digunakan adalah "mysql" dengan tag "latest".

Dengan menjalankan perintah di atas, kita akan membuat sebuah container baru dengan nama "fahmimf-mydb-container" yang berjalan MySQL dan menggunakan password "12345" sebagai password root.

Command docker exec -it fahmimf-mydb-container /bin/bash adalah perintah untuk memasuki shell interaktif di dalam container Docker yang sedang berjalan dengan nama "fahmimf-mydb-container". Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • docker: merujuk pada program Docker yang digunakan untuk mengelola container
  • exec: perintah untuk mengeksekusi sebuah perintah di dalam container yang sedang berjalan.
  • -it: opsi yang digunakan untuk memasuki shell interaktif di dalam container. Opsi ini merupakan singkatan dari "-i" dan "-t". "-i" digunakan untuk mempertahankan STDIN terbuka, sedangkan "-t" digunakan untuk menugaskan terminal atau console di dalam container.
  • fahmimf-mydb-container: nama dari container yang akan dieksekusi perintah di dalamnya.
  • /bin/bash: perintah yang akan dijalankan di dalam container. Dalam hal ini, kita akan memasuki shell interaktif di dalam container menggunakan shell "/bin/bash".

Dengan menjalankan perintah di atas, kita dapat memasuki shell interaktif di dalam container "fahmimf-mydb-container" dan melaksanakan perintah-perintah shell lainnya di dalam container tersebut. Perintah docker exec sering digunakan untuk melakukan troubleshooting atau debugging pada container yang sedang berjalan.

Command mysql -u root -p adalah perintah untuk mengakses server database MySQL dengan menggunakan akun root. Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • mysql: perintah untuk memulai client MySQL di terminal.
  • -u root: opsi untuk mengidentifikasi nama pengguna atau username yang digunakan untuk login ke server database MySQL. Dalam hal ini, kita menggunakan akun root.
  • -p: opsi untuk meminta pengguna untuk memasukkan password sebelum mengakses server database MySQL. Setelah mengetik perintah ini dan menekan enter, MySQL akan menampilkan prompt untuk memasukkan password.

Setelah mengetikkan perintah di atas dan memasukkan password root, kita akan dapat mengakses server database MySQL menggunakan client MySQL di terminal dan menjalankan perintah-perintah SQL seperti membuat database, membuat tabel, atau memasukkan data ke dalam tabel.

Selanjutnya untuk membuat Database dan membuat table dapat menggunakan perintah berikut ini.


Command create database fahmimf; berfungsi untuk membuat database dengan nama fahmimf, dan use fahmimf; berfungsi untuk masuk ke database fahmimf.

Command di atas berfungsi untuk membuat table biodata yang memiliki 5 field yang berisi nama, ttl, alamat,jk, agama yang dimana semuanya menggunakan tipe data varchar dengan length 50.

Command diatas berfungsi untuk memasukan data ke table biodata.

Membuat databse interface PhpMyAdmin

Untuk membuat database dengan tampilan PhpMyAdmin dapa menggunakan perintah seperti dibawah ini.

Command docker run --name fahmimf-phpmyadmin-container -d -p 8080:80 --link fahmimf-mydb-container:db phpmyadmin/phpmyadmin adalah perintah untuk menjalankan container Docker yang berisi aplikasi web phpMyAdmin yang dapat digunakan untuk mengelola database MySQL. Berikut adalah penjelasan dari setiap kata dalam perintah tersebut:

  • docker: merujuk pada program Docker yang digunakan untuk mengelola container.
  • run: perintah untuk menjalankan container baru.
  • --name fahmimf-phpmyadmin-container: memberikan nama "fahmimf-phpmyadmin-container" pada container yang akan dibuat.
  • -d: opsi untuk menjalankan container di background (detached mode).
  • -p 8080:80: opsi untuk memetakan port pada host ke port container. Dalam hal ini, port 8080 pada host akan diarahkan ke port 80 pada container. Port 80 digunakan oleh phpMyAdmin sebagai port default-nya.
  • --link fahmimf-mydb-container:db: opsi untuk menghubungkan container phpMyAdmin dengan container MySQL yang telah dibuat sebelumnya (dalam hal ini, fahmimf-mydb-container) dengan alias "db". Opsi ini memungkinkan phpMyAdmin untuk terhubung ke server database MySQL yang berjalan di dalam container MySQL tersebut.
  • phpmyadmin/phpmyadmin: nama image Docker yang akan digunakan untuk membuat container baru. Image ini berisi aplikasi web phpMyAdmin yang siap untuk digunakan untuk mengelola database MySQL.

Dengan menjalankan perintah di atas, kita akan berhasil membuat container Docker yang berisi aplikasi web phpMyAdmin. Container ini dapat diakses melalui browser web pada alamat http://localhost:8080. Setelah terhubung dengan server database MySQL yang berjalan pada container yang berbeda, kita dapat mulai mengelola database MySQL menggunakan antarmuka web phpMyAdmin.

Upload Image/repository Versi fahmimf Ke Docker Hub.

Sebelum mengupload Image ke Docker Hub fahmimf saya akam membuat Images nya terlebih dahulu, kali ini saya akan membuat images dari mysql yang telah di install dan juga dibuatkan database baru didalamnya, Berikut adalah perintahnnya.

Perintah diatas merupakan perintah untuk membuat Docker Image dengan nama db-fahmimf:V1 yang di ambil dari container fahmimf-mydb-container. Kemudian setelah Images berhasil terbuat Login ke docker terlebih dahulu dengan menggunakan perintah docker login, setelah login selesai lalu saya ubah dulu image yang sudah tadi dibuat menjadi fahmimf/db-fahmimf:V1 dengan menggunakan perintah seperti dibawah ini.

Dari perintah diatas karna username akun Docker Hub saya fahmimf jadi nama untuk Images nya menjadi fahmimf/db-fahmimf:V1. setelah proses tadi selesai saya push Images yang tadi sudah dibuat menggunakan perintah seperti dibawah ini.

Jika cara diatas membuat image dari container yang sudah ada berikut ini adalah cara jika ingin membuat image yang diambil dari suatu project, kali ini saya sudah meyiapkan project nodejs untuk menjadikan project tersebut menjadi image, berikut ini adalah contoh perintahnya.

Untuk pushnya sama seperti sebelumnya tinggal diganti nama image nya saja.


Create Container Yang Di Dalamnya Berisi Sistem Operasi Centos Lalu di Installkan Package Telnet Didalamnya.

Pertama-tama install dulu image centosnya :

Lalu setelah itu jalanakan centos dengan perintah seperti dibawah ini.

Jika centos sudah berhasil di jalanakan, Kemudian tahap menginstall telnet tapi sebelum itu masukan perintah seperti dibawah ini terlebih dahulu untuk mengganti repositori CentOS Linux ke repositori CentOS Stream.

Setelah itu masukan perintah seperti dibawah ini untuk memperbarui paket ke versi terbaru yang tersedia di repositori.

setelah semuanya selesai lalu install telnet nya dengan perintah seperti dibawah ini.



Create Your Website Using Nodejs Image On Your Container.

Untuk melakukan hal ini pertama-tama download dan install package node.js terlebih dahulu.

Lalu buat folder baru untuk menyimpan project node.js nya.

Setelah itu masuk ke teks editor disini saya menggunakan Visual Studio Code dan buka terminal baru lalu masukan perintah npm init.

Selanjutnya install package Express terlebih dahulu.

Selanjutnya pada file package.json disini saya merubah dulu main nya menjadi server.js

Setelah itu buat file baru didalam folder projectnya dengan nama server.js dan isinya adalah sebagai berikut.

Selanjutnya buat file Dockerfile yang isinya seperti dibawah ini.

Setelah Dockerfile berhasil dibuat lalu sekarang buat lagi satu file yang bernama .dockerignore yang isinya seperti dibawah ini.

Selanjutnya yaitu project yang sudah tadi dibuat saya akan jadikan sebuah image dengan menggunakan perintah seperti dibawah ini.

Setelah itu jalankan image yang sudah tadi dibuat dengan menggunakan perintah seperti di bawah ini









Subscribe to receive free email updates:

1 Response to "Docker Container"