Perintah Docker Run
Perintah docker run
adalah bagian fundamental dari penggunaan Docker, yang memungkinkan pengguna untuk membuat dan memulai kontainer baru dari sebuah image. Dalam artikel ini, saya akan membahas berbagai flag perintah yang dapat digunakan bersama perintah docker run
untuk menyesuaikan perilaku kontainer.
Syntax Dasar dan Penggunaan
Syntax dasar dari perintah docker run
adalah sebagai berikut:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
OPTIONS
adalah flag perintah yang akan kita bahas dalam artikel ini. IMAGE
adalah nama dari image Docker, sementara TAG
dan DIGEST
adalah identifikasi opsional. COMMAND
dan ARG
adalah perintah dan argumen tambahan yang akan dieksekusi dalam kontainer.
Flag Perintah Dasar pada Docker Run
-d, --detach
Flag ini digunakan untuk menjalankan kontainer dalam mode terpisah, yang berarti kontainer akan berjalan di latar belakang dan tidak memerlukan terminal untuk tetap terbuka. Untuk menggunakan flag ini, cukup sertakan -d
atau --detach
pada perintah docker run Anda.
$ docker run -d nginx
-it (Interactive dan TTY)
Flag -it
adalah kombinasi dari dua flag terpisah, -i
(interactive) dan -t
(TTY). Menggunakan flag ini bersama-sama memungkinkan Anda untuk berinteraksi dengan kontainer secara real-time dan mengalokasikan pseudo-TTY, yang memungkinkan pengalaman yang lebih interaktif saat menjalankan kontainer.
Flag -i
atau --interactive
menjaga input standar (stdin) kontainer tetap terbuka bahkan jika tidak terhubung ke terminal. Hal ini memungkinkan Anda untuk mengirimkan input ke dalam kontainer saat berjalan.
Flag -t
atau --tty
mengalokasikan pseudo-TTY untuk kontainer. Ini mensimulasikan terminal teks, sehingga memudahkan untuk berinteraksi dengan antarmuka baris perintah kontainer.
$ docker run -it ubuntu bash
Pada contoh ini, kita memulai kontainer ubuntu
dengan shell Bash interaktif. Flag -it
memungkinkan Anda untuk mengeksekusi perintah dalam kontainer dan menerima output secara real-time, seperti saat bekerja dengan terminal lokal.
-p, --publish
Flag -p
atau --publish
digunakan untuk memetakan port kontainer ke port mesin host. Hal ini penting untuk mengekspos layanan kontainer ke jaringan eksternal atau mesin host itu sendiri.
$ docker run -d -p 8080:80 nginx
-v, --volume
Flag -v
atau --volume
digunakan untuk memasang direktori host atau volume bernama ke dalam file sistem kontainer. Hal ini berguna untuk menyimpan data dan berbagi file antara kontainer dan mesin host.
$ docker run -d -v /path/on/host:/path/in/container nginx
-e, --env
Flag -e
atau --env
memungkinkan Anda untuk mengatur variabel lingkungan di dalam kontainer. Hal ini berguna untuk melewatkan informasi konfigurasi ke aplikasi yang berjalan di dalam kontainer.
$ docker run -d -e MYSQL_ROOT_PASSWORD=my-secret-password mysql
--name
Flag --name
memberikan nama khusus pada kontainer, sehingga memudahkan untuk mengelola dan merujuknya.
$ docker run -d --name my-nginx-container nginx
--restart
Flag --restart
menentukan kebijakan restart kontainer dalam hal kegagalan atau saat mesin host melakukan reboot. Ia menerima salah satu nilai berikut: no
, on-failure
, unless-stopped
, atau always
.
$ docker run -d --restart=always nginx
--memory
Flag --memory
membatasi jumlah memori yang dapat digunakan oleh kontainer. Hal ini berguna untuk mengontrol penggunaan resource pada mesin host dan mencegah kontainer tunggal mengonsumsi resource secara berlebihan.
$ docker run -d --memory=512m nginx
--cpu-shares
Flag --cpu-shares
menetapkan bobot relatif untuk penggunaan CPU antara kontainer. Hal ini memungkinkan Anda untuk mengontrol berapa banyak waktu CPU yang diberikan pada setiap kontainer ketika terdapat banyak kontainer yang bersaing untuk resource.
$ docker run -d --cpu-shares=1024 nginx
--network
Flag --network
menghubungkan kontainer ke jaringan tertentu. Anda dapat menggunakan flag ini untuk mengontrol lingkungan jaringan kontainer dan memfasilitasi komunikasi antara kontainer.
$ docker run -d --network=my-custom-network nginx
--rm
Flag --rm
secara otomatis menghapus kontainer setelah ia keluar. Hal ini berguna untuk menjaga mesin host Anda tetap bersih dan bebas dari sampah yang tidak perlu, terutama saat menjalankan kontainer yang singkat.
$ docker run --rm -it ubuntu bash
--entrypoint
Flag --entrypoint
memungkinkan Anda untuk mengganti entrypoint default kontainer, yaitu perintah yang dieksekusi saat kontainer dimulai. Hal ini berguna untuk menjalankan perintah atau program yang berbeda di dalam kontainer tanpa harus membuat image Docker baru.
$ docker run --entrypoint=/bin/sh -it nginx
Pada contoh ini, kita mengganti entrypoint default kontainer nginx untuk menjalankan /bin/sh
. Hal ini memungkinkan kita untuk mengakses shell kontainer secara interaktif.
Referensi