Cara Konek ke Docker Container dari Baris Perintah

Menyambungkan Terminal ke container Docker yang sedang berjalan sangat membantu ketika ingin melihat apa yang terjadi di dalam container. Jika container Docker tidak berfungsi seperti yang diharapkan, Anda dapat attach container atau membuka shell ke container dan menjalankan perintah seperti ps atau top. Anda juga dapat memasukkan container, menginstal paket baru, dan mem-build image Docker baru dari dalam shell.

Dalam tutorial ini, kami akan menjelaskan cara attach (melampirkan) ke proses utama container dan cara membuka shell ke container yang sedang berjalan.

*Attach ke container*

Meskipun dimungkinkan untuk menjalankan banyak proses dalam sebuah container, kebanyakan docker hanya menjalankan satu proses tunggal. Perintah yang dijalankan saat memulai sebuah container ditentukan menggunakan instruksi ENTRYPOINT” dan / atau RUN” .

Perintah docker attach memungkinkan Anda untuk melampirkan terminal ke containeryang sedang berjalan. Ini berguna ketika ingin melihat apa yang tertulis dalam output standar secara real-time, atau untuk mengontrol proses secara interaktif.

Untuk lebih memahami cara kerja perintah attach” mari kita jalankan container Nginx baru menggunakan image dari Nginx resmi.

docker container run –name proyek_nginx -d -p 8080:80 nginx

Opsi -p 8080:80 memberitahu Docker untuk bind port 8080 dari container ke port 80 pada mesin host.

Lihat daftar container pada mesin untuk memastikan container “proyek_nginx” berjalan:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4971a7d8 nginx “nginx -g ‘daemon of”€¦” 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp proyek_nginx

Attach container dengan menggunakan ID atau nama container:

docker container attach proyek_nginx

Buka 127.0.0.1:8080 di browser” dan Anda dapat, melihat output dari proses nginx secara real time.

192.168.33.1 – – [04/Oct/2019:00:12:28 +0000] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36” “-” 192.168.33.1 – – [04/Oct/2019:00:12:28 +0000] “GET /favicon.ico HTTP/1.1” 404 555 “http://192.168.33.57:8080/” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36” “-”

Untuk mendapatkan akses ke log container Anda, sebaiknya menggunakan perintah docker logs.

Untuk detach dari container tanpa menghentikannya, gunakan kombinasi tombol CTRL-p CTRL-q. Jika menekan CTRL-c” maka akan menghentikan container.

Jika proses yang berjalan yang Anda attach menerima input, Anda dapat mengirim instruksi padanya.

*Membuka Shell ke Container*

Perintah docker exec memungkinkan Anda untuk menjalankan perintah di dalam container yang berjalan.

Untuk melihat bagaimana perintah exec bekerja dan bagaimana ia dapat digunakan untuk memasukkan shell container, pertama-tama, mulailah sebuah container baru. Kami akan menggunakan image MySQL resmi:

docker container run –name proyek_mysql -d mysql

Perintah diatas akan membuat container bernama “proyek_mysql”.

Untuk menjalankan perintah di dalam container, jalankan perintah berikut:

docker container exec -it proyek_mysql ls /var

Opsi -i singkatan interactive, dan -t” akan memberitahu Docker untuk mengalokasikan pseudo TTY device. Perintah ls akan mencantumkan semua file dan direktori di dalam direktori/var” di container:

backups cache lib local lock log mail opt run spool tmp

Untuk mendapatkan shell ke container tertentu mis., Untuk masuk ke dalam container, mulailah sesi shell baru dengan mengeksekusi binary shell. Anda dapat menggunakan sh, bash, atau shell lain yang terdapat dalam image.

Perintah di bawah ini akan membuat sesi Bash baru di dalam container:

docker container exec -it proyek_mysql /bin/bash

Command Prompt akan berubah, yang menunjukkan bahwa Anda sedang bekerja pada shell container .

Dari sini, Anda dapat menjalankan perintah dengan cara yang sama seperti yang Anda lakukan pada server Linux lainnya. Misalnya, untuk mendapatkan daftar environment variables saat ini ketik env:

env

Outputnya akan terlihat seperti ini:

HOSTNAME=e0876a97e0fe MYSQL_ROOT_PASSWORD=Pa$$w0rd_mySQL PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env

*Kesimpulan*

Perintah docker exec dan docker attach memungkinkan Anda untuk terhubung ke container yang sedang berjalan. Untuk mendapatkan shell interaktif ke suatu container, gunakan perintah exec untuk memulai sesi shell baru. Perintah attach” akan melampirkan terminal Anda ke container yang sedang berjalan.

Leave a Reply

Your email address will not be published.

scroll to top