Android

Bagaimana menghubungkan ke wadah buruh pelabuhan

EKSPERIMEN SPEAKER ANTI AIR

EKSPERIMEN SPEAKER ANTI AIR

Daftar Isi:

Anonim

Menyambungkan ke wadah Docker yang sedang berjalan sangat membantu ketika Anda ingin melihat apa yang terjadi di dalam wadah. Jika wadah Docker tidak berfungsi seperti yang diharapkan, Anda dapat melampirkan wadah atau mendapatkan shell ke wadah dan menjalankan perintah seperti ps atau top . Anda juga dapat memasukkan wadah, menginstal paket baru, dan membangun gambar Docker baru darinya.

Dalam tutorial ini, kami akan menjelaskan cara melampirkan ke proses menjalankan utama penampung dan cara mendapatkan shell ke wadah yang berjalan.

Lampirkan ke Wadah

Meskipun dimungkinkan untuk menjalankan banyak proses dalam suatu wadah, kebanyakan buruh pelabuhan hanya menjalankan satu proses tunggal. Perintah yang dijalankan saat memulai sebuah wadah ditentukan menggunakan ENTRYPOINT dan / atau RUN .

Perintah docker attach memungkinkan Anda untuk melampirkan terminal Anda ke wadah yang sedang berjalan. Ini berguna ketika Anda 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 wadah Nginx terpisah menggunakan gambar Nginx resmi.

docker container run --name my_nginx -d -p 8080:80 nginx

Opsi -p 8080:80 memberi tahu Docker untuk mengikat port 8080 kontainer ke port 80 pada mesin host.

Daftar kontainer untuk memastikan wadah "my_nginx" berjalan:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx

Lampirkan wadah menggunakan ID atau nama wadah:

docker container attach my_nginx

Perintah default gambar nginx yang dijalankan ketika Anda menjalankan wadah diatur ke CMD . Saat Anda menjalankan perintah attach terminal Anda menempel pada proses nginx .

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

192.168.33.1 - - "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 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71: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 kontainer Anda sebaiknya menggunakan perintah docker logs .

Untuk melepaskan dari wadah tanpa menghentikannya, gunakan kombinasi tombol CTRL-p CTRL-q . Menekan CTRL-c menghentikan wadah.

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

Dapatkan Shell ke Kontainer

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

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

docker container run --name my_mysql -d mysql

Ini akan membuat wadah bernama "my_mysql".

Untuk menjalankan perintah di dalam wadah, jalankan perintah berikut:

docker container exec -it my_mysql ls /var

Opsi -i singkatan interaktif, dan -t memberitahu Docker untuk mengalokasikan perangkat TTY semu. Perintah ls akan mencantumkan semua file dan direktori di dalam direktori /var :

backups cache lib local lock log mail opt run spool tmp

Untuk mendapatkan shell ke wadah yaitu, untuk masuk ke dalam wadah, memulai sesi shell baru dengan mengeksekusi biner shell. Anda dapat menggunakan sh , bash , atau shell lain yang termasuk dalam gambar.

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

docker container exec -it my_mysql /bin/bash

Prompt perintah Anda akan berubah, menunjukkan bahwa Anda sedang mengerjakan shell kontainer.

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

env

Outputnya akan terlihat seperti ini:

HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw 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 wadah yang sedang berjalan. Untuk mendapatkan shell interaktif ke sebuah wadah, gunakan perintah exec untuk memulai sesi shell baru. Perintah attach melampirkan terminal Anda ke wadah yang sedang berjalan.

buruh pelabuhan