Docker Client Interaction

Rony Setyawan
TelkomDev
Published in
5 min readSep 5, 2021

Chapter 2 — Docker Client Interaction

Hi Folks, let’s get through chapter 2 bersama saya, rony. Semoga kita senantiasa sehat dan diberikan kecerdasan dan kemudahan dalam segala hal termasuk langkah menuju chapter 2 kali ini.

Baik, di chapter 2 ini kita akan banyak bermain dengan Docker Client. You still remember about Docker Client, right?

Pada chapter 1, kita telah mencoba command tersebut. Docker Run berfungsi untuk creating dan running container dari sebuah image.

Docker Run juga mempunyai variasi lain, salah satunya adalah seperti berikut ini.

Sebagai contoh silahkan gunakan command di bawah ini.

Alpine sendiri adalah sebuah Docker Base Image berbasis linux yang berukuran sangat kecil sehingga ringan dan cocok untuk sampai pada level production. Alpine juga menjadi standard yang digunakan di Telkom Developer saat ini.

Perhatikan pada bagian “echo hi telkomers“ dan “ls“. Command tersebut sebenarnya melakukan overriding terhadap startup command yang ada pada file image yang digunakan.

Dan perhatikan list folder yang ditampilkan, jelas itu adalah list folder default dari Base Image yang digunakan dimana berbasis linux.

Docker Run in behind the scenes terdiri dari dari Docker Create dan Docker Start. Jadi, tentu di sini Docker Run menyederhanakan penggunaan kedua commands tersebut.

Mari kita coba untuk membuktikannya dengan beberapa command di bawah ini.

Perhatikan pada Gambar 8, akan ditampilkan container id dari command Docker Create tersebut. Kemudian container id tersebut silahkan digunakan untuk command selanjutnya.

Pada Gambar 9, tentu kita dapat melihat sedikit perbedaan ketika kita menggunakan Docker Run dan menggunakan Docker Start.

Default dari Docker Run adalah langsung menampilkan output program ke terminal, sedangkan dengan Docker Start hanya menampilkan container id yang digunakan dan tidak menampilkan output program ke terminal. Oleh karena itu, untuk mendapat experience yang sama baik menggunakan Docker Run atau Docker Create dan Docker Start maka perlu sedikit memodifikasi command tersebut menjadi.

Dengan tambahan argumen “-a” pada command Docker Start, maka kita akan mendapatkan experience yang sama ketika kita menggunakan Docker Run. Fungsi “-a“ itu sendiri adalah untuk watching output dari container dan kemudian menampilkannya ke terminal.

Command berikutnya yang akan kita bahas adalah command di bawah ini. Docker ps sendiri berfungsi untuk mendapatkan List of Running Container. Mari kita langsung praktik saja command tersebut.

Setelah menjalankan command tersebut pastikan kita membuka terminal yang lain dan gunakan command di bawah ini.

Ada variasi lain dari Docker ps yang cukup penting dan sering digunakan yaitu seperti command di bawah ini.

Jadi, dengan Docker ps — all kita dapat melihat List of Containers we have created before berikut dengan informasi lainnya.

Untuk menghapus container biasanya di dalam praktiknya jarang dilakukan per container. Justru malah per periode waktu tertentu dan langsung menghapus keseluruhan Stopped Containers. Sehingga command yang sering digunakan adalah berikut ini.

Ketika dalam proses debug atau setup biasanya kita membutuhkan command docker logs. Untuk mendapatkan semua emitted information dari suatu container tanpa harus rerunning container tersebut.

Selanjutnya silahkan ketikkan command di bawah ini.

Untuk menghentikan running container dapat digunakan Docker Stop atau Docker Kill. Tapi, sangat disarankan untuk selalu menggunakan Docker Stop karena dengan Docker Stop akan memberikan waktu maksimal 10 seconds untuk dapat self-shutdown sebelum nanti otomatis menuju ke Docker Kill apabila dalam 10 seconds container gagal untuk shutdown/terminated.

Command penting yang harus kita ketahui selanjutnya adalah Docker Exec. Sebagai contoh adalah seperti pada gambar di bawah ini.

Jadi, pada intinya adalah ketika kita ingin mengeksekusi sebuah command ke dalam suatu container maka kita akan membutuhkan Docker Exec tersebut. Mari kita coba beberapa command di bawah ini sebagai praktiknya.

Buka terminal lainnya.

Flag “-it” sangat penting di command Docker Exec karena dengan “-it” kita dapat memasukkan command dan mendapatkan response di Terminal kita ketika menggunakan Docker Exec. Penjelasan lebih detail seperti diagram di bawah ini.

Variasi dari Docker Exec yang juga sangat penting adalah dengan menambahkan Shell command. Maka akan menjadi seperti berikut.

Sehingga dengan command tersebut kita akan dapat mendapatkan akses penuh ke terminal kita di dalam container. Dan sebenarnya “sh“ juga bisa diganti dengan yang lain seperti “zsh”, “powershell”, “bash”, ect. Tapi, memang yang paling umum dan major adalah “sh”. Dan kita dapat type “exit“ untuk keluar dari terminal di dalam container.

Untuk mengakhiri chapter 2 ini, mari kita melakukan percobaan berikut.

Buka terminal baru.

Original Article : https://www.linkedin.com/pulse/docker-client-interaction-docker-2-setyawan-rony

#belajardocker #dockercli #dockerclientinteraction #telkomdeveloper #telkomdigital

--

--

Rony Setyawan
TelkomDev

I am just someone who loves everything about technology, and it has become my love, my passion, and my daily job