Docker Dasar
Docker Dasar
readonly Jika ada, maka file atau folder hanya bisa dibaca di container,
tidak bisa ditulis
Melakukan Mounting
● Untuk melakukan mounting, kita bisa menggunakan perintah berikut :
docker container create --name namacontainer --mount
“type=bind,source=folder,destination=folder,readonly” image:tag
Kode : Melakukan Mounting
Docker Volume
Docker Volume
● Fitur Bind Mounts sudah ada sejak Docker versi awal, di versi terbaru direkomendasikan
menggunakan Docker Volume
● Docker Volume mirip dengan Bind Mounts, bedanya adalah terdapat management Volume, dimana
kita bisa membuat Volume, melihat daftar Volume, dan menghapus Volume
● Volume sendiri bisa dianggap storage yang digunakan untuk menyimpan data, bedanya dengan
Bind Mounts, pada bind mounts, data disimpan pada sistem host, sedangkan pada volume, data di
manage oleh Docker
Melihat Docker Volume
● Saat kita membuat container, dimanakah data di dalam container itu disimpan, secara default
semua data container disimpan di dalam volume
● Jika kita coba melihat docker volume, kita akan lihat bahwa ada banyak volume yang sudah
terbuat, walaupun kita belum pernah membuatnya sama sekali
● Kita bisa gunakan perintah berikut untuk melihat daftar volume :
docker volume ls
Kode : Melihat Volume
Membuat Volume
● Untuk membuat volume, kita bisa gunakan perintah :
docker volume create namavolume
Kode : Membuat Volume
Menghapus Volume
● Volume yang tidak digunakan oleh container bisa kita hapus, tapi jika volume digunakan oleh
container, maka tidak bisa kita hapus sampai container nya di hapus
● Untuk menghapus volume, kita bisa gunakan perintah :
docker volume rm namavolume
Kode : Menghapus Volume
Container Volume
Container Volume
● Volume yang sudah kita buat, bisa kita gunakan di container
● Keuntungan menggunakan volume adalah, jika container kita hapus, data akan tetap aman di
volume
● Cara menggunakan volume di container sama dengan menggunakan bind mount, kita bisa
menggunakan parameter --mount, namun dengan menggunakan type volume dan source nama
volume
Kode : Container Volume
Backup Volume
Backup Volume
● Sayangnya, sampai saat ini, tidak ada cara otomatis melakukan backup volume yang sudah kita
buat
● Namun kita bisa memanfaatkan container untuk melakukan backup data yang ada di dalam volume
ke dalam archive seperti zip atau tar.gz
Tahapan Melakukan Backup
● Matikan container yang menggunakan volume yang ingin kita backup
● Buat container baru dengan dua mount, volume yang ingin kita backup, dan bind mount folder dari
sistem host
● Lakukan backup menggunakan container dengan cara meng-archive isi volume, dan simpan di bind
mount folder
● Isi file backup sekarang ada di folder sistem host
● Delete container yang kita gunakan untuk melakukan backup
Kode : Membuat Backup Container
Menjalankan Container Secara Langsung
● Melakukan backup secara manual agak sedikit ribet karena kita harus start container terlebih
dahulu, setelah backup, hapus container nya lagi
● Kita bisa menggunakan perintah run untuk menjalankan perintah di container dan gunakan
parameter --rm untuk melakukan otomatis remove container setelah perintahnya selesai berjalan
Kode : Backup Dengan Container Run
Restore Volume
Restore Volume
● Setelah melakukan backup volume ke dalam file archive, kita bisa menyimpan file archive backup
tersebut ke tempat yang lebih aman, misal ke cloud storage
● Sekarang kita akan coba melakukan restore data backup ke volume baru, untuk memastikan data
backup yang kita lakukan tidak corrupt
Tahapan Melakukan Restore
● Buat volume baru untuk lokasi restore data backup
● Buat container baru dengan dua mount, volume baru untuk restore backup, dan bind mount folder
dari sistem host yang berisi file backup
● Lakukan restore menggunakan container dengan cara meng-extract isi backup file ke dalam
volume
● Isi file backup sekarang sudah di restore ke volume
● Delete container yang kita gunakan untuk melakukan restore
● Volume baru yang berisi data backup siap digunakan oleh container baru
Kode : Restore Backup
Docker Network
Docker Network
● Saat kita membuat container di docker, secara default container akan saling terisolasi satu sama
lain, jadi jika kita mencoba memanggil antar container, bisa dipastikan bahwa kita tidak akan bisa
melakukannya
● Docker memiliki fitur Network yang bisa digunakan untuk membuat jaringan di dalam Docker
● Dengan menggunakan Network, kita bisa mengkoneksikan container dengan container lain dalam
satu Network yang sama
● Jika beberapa container terdapat pada satu Network yang sama, maka secara otomatis container
tersebut bisa saling berkomunikasi
Network Driver
● Saat kita membuat Network di Docker, kita perlu menentukan driver yang ingin kita gunakan, ada
banyak driver yang bisa kita gunakan, tapi kadang ada syarat sebuah driver network bisa kita
gunakan.
● bridge, yaitu driver yang digunakan untuk membuat network secara virtual yang memungkinkan
container yang terkoneksi di bridge network yang sama saling berkomunikasi
● host, yaitu driver yang digunakan untuk membuat network yang sama dengan sistem host. host
hanya jalan di Docker Linux, tidak bisa digunakan di Mac atau Windows
● none, yaitu driver untuk membuat network yang tidak bisa berkomunikasi
Melihat Network
● Untuk melihat network di Docker, kita bisa gunakan perintah :
docker network ls
Kode : Melihat Network
Membuat Network
● Untuk membuat network baru, kita bisa menggunakan perintah :
docker network create --driver namadriver namanetwork
Kode : Membuat Network
Menghapus Network
● Untuk menghapus Network, kita bisa gunakan perintah :
docker network rm namanetwork
● Network tidak bisa dihapus jika sudah digunakan oleh container. Kita harus menghapus container
nya terlebih dahulu dari Network
Kode : Menghapus Network
Container Network
Container Network
● Setelah kita membuat Network, kita bisa menambahkan container ke network
● Container yang terdapat di dalam network yang sama bisa saling berkomunikasi (tergantung jenis
driver network nya)
● Container bisa mengakses container lain dengan menyebutkan hostname dari container nya, yaitu
nama container nya
Membuat Container dengan Network
● Untuk menambahkan container ke network, kita bisa menambahkan perintah --network ketika
membuat container, misal :
docker container create --name namacontainer --network namanetwork image:tag
Kode : Membuat Container Dengan Network
Menghapus Container dari Network
● Jika diperlukan, kita juga bisa menghapus container dari network dengan perintah :
docker network disconnect namanetwork namacontainer
Kode : Menghapus Container dari Network
Menambahkan Container ke Network
● Jika containernya sudah terlanjur dibuat, kita juga bisa menambahkan container yang sudah dibuat
ke network dengan perintah :
docker network connect namanetwork namacontainer
Kode : Menambahkan Container ke Network
Inspect
Inspect
● Setelah kita men-download image, atau membuat network, volume dan container. Kadang kita
ingin melihat detail dari tiap hal tersebut
● Misal kita ingin melihat detail dari image, perintah apa yang digunakan oleh image tersebut?
Environment variable apa yang digunakan? Atau port apa yang digunakan?
● Misal kita juga ingin melihat detail dari container, Volume apa yang digunakan? Environment
variable apa yang digunakan? Port forwarding apa yang digunakan? dan lain-lain
● Docker memiliki fitur bernama inspect, yang bisa digunakan di image, container, volume dan
network
● Dengan fitur ini, kita bisa melihat detail dari tiap hal yang ada di Docker
Menggunakan Inspect
● Untuk melihat detail dari image, gunakan : docker image inspect namaimage
● Untuk melihat detail dari container, gunakan : docker container inspect namacontainer
● Untuk melihat detail dari volume, gunakan : docker volume inspect namavolume
● Untuk melihat detail dari network, gunakan : docker network inspect namanetwork
Kode : Menggunakan Inspect
Prune
Prune
● Saat kita menggunakan Docker, kadang ada kalanya kita ingin membersihkan hal-hal yang sudah
tidak digunakan lagi di Docker, misal container yang sudah di stop, image yang tidak digunakan
oleh container, atau volume yang tidak digunakan oleh container
● Fitur untuk membersihkan secara otomatis di Docker bernama prune
● Hampir di semua perintah di Docker mendukung prune
Perintah Prune
● Untuk menghapus semua container yang sudah stop, gunakan : docker container prune
● Untuk menghapus semua image yang tidak digunakan container, gunakan : docker image prune
● Untuk menghapus semua network yang tidak digunakan container, gunakan : docker network
prune
● Untuk menghapus semua volume yang tidak digunakan container, gunakan : docker volume prune
● Atau kita bisa menggunakan satu perintah untuk menghapus container, network dan image yang
sudah tidak digunakan menggunakan perintah : docker system prune
Kode : Menggunakan Prune
Materi Selanjutnya
Materi Selanjutnya
● Docker Dockerfile
● Docker Compose