GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menjalankan Perintah di Running Docker Container

Biasanya, Anda ingin aplikasi Docker terisi penuh, tetapi terkadang untuk tujuan pengembangan atau otomatisasi, bekerja dengan container Docker seolah-olah ada VM Linux berguna untuk bekerja dengan container Docker. Docker menyediakan alat untuk menjalankan perintah dan bahkan seluruh shell di dalam container.

Menjalankan Perintah Dalam Wadah

Untuk menjalankan perintah dalam wadah, Anda memerlukan ID wadahnya, kecuali jika Anda telah menyiapkan nama khusus untuk wadah itu. Ini adalah string hex panjang yang dapat Anda temukan dari daftar proses Docker:

docker ps

Kemudian, Anda dapat menggunakan exec -it perintah untuk dijalankan di dalam container. Misalnya, melihat output dari file log:

docker exec -it containerID tail /var/log/nginx/access.log

Anda juga dapat menjalankan skrip di dalam wadah:

docker exec -it containerID script.sh

-it flag masing-masing untuk "mode interaktif" dan TTY, dan digunakan hampir sepanjang waktu. Ada beberapa flag lain yang bisa Anda gunakan:

  • --workdir atau -w mengubah direktori saat ini sebelum perintah.
  • --detach , atau -d , menjalankan perintah di latar belakang.
  • --env , atau -e , menyetel variabel lingkungan sebelum dijalankan.
  • --env-file melakukan hal yang sama, tetapi lebih aman untuk menangani rahasia.
  • --privileged menjalankan perintah dengan izin yang diperluas.
  • --user berjalan sebagai pengguna yang berbeda

Tentu saja, ini hanya berfungsi pada wadah yang sedang berjalan. Jika ingin menjeda container untuk melakukan pemeliharaan, Anda harus menerapkan pembaruan melalui versi image baru, atau melakukan perubahan pada data yang dipasang pada volume dari OS host.

SSHing Ke dalam Wadah

Anda tidak terbatas pada perintah sederhana, Anda sebenarnya dapat membuka shell dengan menjalankan /bin/bash sebagai perintah. Anda mungkin terbatas pada alat yang tersedia—sebagian besar container menampilkan instalasi Linux yang cukup sederhana—tetapi ini membuat menjalankan banyak perintah menjadi jauh lebih mudah.

docker exec -it containerID /bin/bash

Ini hanyalah shell yang dapat diakses dari Host, yang berfungsi dengan baik dalam banyak kasus. Tetapi, jika Anda mau, Anda dapat mengatur wadah Anda agar sepenuhnya tersedia melalui SSH seperti VPS. Anda dapat membaca selengkapnya tentang menyiapkannya di panduan kami untuk menjalankan layanan SSH di wadah Docker.

TERKAIT: Cara SSH Menjadi Wadah Docker

Menyalin Berkas Ke Dan Dari Wadah

Menjalankan perintah dengan exec -it berfungsi, tetapi masih ada lapisan antara host dan penampung yang mencegah pembuatan skrip yang mudah. Pertama, meskipun mudah untuk mengirim perintah ke sebuah wadah, lebih sulit untuk mengeluarkan output dari sistem file.

Meskipun Anda dapat menyalurkan STDOUT dari exec -it ke layanan lain di OS host, Anda juga dapat menyalin file ke dan dari sistem file penampung. Misalnya, mengeluarkan file log dan menempelkannya di host:

docker cp container:/var/log/nginx/example.log example.log

Atau mengeluarkan seluruh direktori:

docker cp nginx:/etc/nginx/ nginxconfig/

Jika Anda sering melakukan ini, Anda mungkin ingin mempertimbangkan untuk menggunakan pengikatan atau pemasangan volume untuk membuat data dapat diakses langsung dari host.

TERKAIT: Cara Menggunakan Docker Cp untuk Menyalin File Antara Host dan Kontainer


Docker
  1. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  2. Cara Menjalankan MySQL Dalam Wadah Docker

  3. Bagaimana cara mengirim sinyal ke program yang dijalankan dalam wadah buruh pelabuhan?

  1. Bagaimana Cara Menjalankan Perintah Di Dalam Wadah Systemd yang Berjalan?

  2. Cara SSH Ke Wadah Docker

  3. Bagaimana cara menambahkan pengguna ke wadah Docker?

  1. Cara SSH ke dalam Running Docker Container dan Jalankan Perintah

  2. Cara Menggunakan Perintah Docker Run dengan Contoh

  3. Cara menjalankan tugas cron di dalam wadah buruh pelabuhan