03. Docker Compose и Best Practice Docker, CI/CD и Gitlab CI. Вечерняя школа Слёрма по Kubernetes.
Isi kandungan:
Menyambung ke bekas Docker yang berjalan sangat berguna apabila anda mahu melihat apa yang sedang berlaku di dalam bekas. Jika bekas Docker tidak berfungsi seperti yang dijangkakan, anda boleh melampirkan ke bekas atau mendapatkan cangkerang ke bekas dan jalankan perintah seperti
ps
atau
top
. Anda juga boleh memasukkan bekas, memasang pakej baru, dan membina imej Docker baru daripadanya.
Dalam tutorial ini, kami akan menerangkan bagaimana untuk melampirkan ke proses utama utama bekas dan bagaimana untuk mendapatkan shell pada bekas yang berjalan.
Lampirkan kepada Container
Walaupun adalah mungkin untuk menjalankan pelbagai proses dalam bekas, kebanyakan kontainer penyimpan hanya berjalan satu proses. Perintah yang dilaksanakan semasa memulakan bekas ditetapkan dengan menggunakan arahan
ENTRYPOINT
dan / atau
RUN
.
Perintah
docker attach
membolehkan anda melampirkan terminal anda ke bekas yang sedang berjalan. Ini berguna apabila anda mahu melihat apa yang ditulis dalam output standard dalam masa nyata, atau untuk mengawal proses secara interaktif.
Untuk lebih memahami bagaimana kerja perintah
attach
mari kita jalankan bekas Nginx yang terpisah menggunakan imej Nginx rasmi.
docker container run --name my_nginx -d -p 8080:80 nginx
Pilihan
-p 8080:80
memberitahu Docker untuk mengikat pelabuhan 8080 bekas ke port 80 pada mesin tuan rumah.
Senaraikan bekas untuk memastikan bekas "my_nginx" sedang 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 bekas dengan ID atau nama bekas:
docker container attach my_nginx
Perintah lalai dari imej nginx yang dijalankan apabila anda menjalankan bekas ditetapkan ke
CMD
. Apabila anda menjalankan perintah
attach
terminal anda melekat pada proses
nginx
.
Buka
127.0.0.1:8080
dalam pelayar anda dan anda boleh melihat output proses nginx dalam masa nyata.
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 kepada log bekas anda harus lebih suka menggunakan perintah
docker logs
.
Untuk melepaskan dari bekas tanpa hentikannya, gunakan kombinasi kekunci
CTRL-p
CTRL-q
. Menekan
CTRL-c
menghentikan bekas.
Jika proses berjalan anda dilampirkan untuk menerima input, anda boleh menghantar arahan kepadanya.
Dapatkan Shell ke Container
Perintah
docker exec
membolehkan anda menjalankan perintah di dalam bekas yang sedang berjalan.
Untuk melihat bagaimana kerja perintah
exec
dan bagaimana ia boleh digunakan untuk memasuki shell kontena, pertama, mulakan bekas baru. Kami akan menggunakan imej MySQL rasmi:
docker container run --name my_mysql -d mysql
Ini akan mewujudkan sebuah bekas bernama "my_mysql".
Untuk melaksanakan arahan di dalam bekas, jalankan arahan berikut:
docker container exec -it my_mysql ls /var
Pilihan
-i
bermaksud interaktif, dan
-t
memberitahu Docker untuk memperuntukkan peranti TTY pseudo. Perintah
ls
akan menyenaraikan semua fail dan direktori di dalam direktori
/var
kontena:
backups cache lib local lock log mail opt run spool tmp
Untuk mendapatkan shell pada bekas iaitu, masukkan masuk ke dalam bekas, mulakan sesi shell baru dengan melaksanakan shell binari. Anda boleh menggunakan
sh
,
bash
, atau mana-mana shell lain yang dimasukkan ke dalam imej.
Perintah di bawah akan membuat sesi Bash baru di dalam bekas:
docker container exec -it my_mysql /bin/bash
Permintaan arahan anda akan berubah, menunjukkan bahawa anda sekarang sedang bekerja pada shell bekas.
Dari sini, anda boleh menjalankan arahan dengan cara yang sama seperti yang anda lakukan pada pelayan Linux yang lain. Sebagai contoh, untuk mendapatkan senarai pembolehubah persekitaran semasa jenis
env
:
env
Output akan kelihatan 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
Kesimpulannya
Pelaksana
docker exec
dan
docker attach
arahan membolehkan anda menyambung ke bekas yang sedang berjalan. Untuk mendapatkan shell interaktif pada bekas, gunakan arahan
exec
untuk memulakan sesi shell baru. Arahan
attach
melampirkan terminal anda ke bekas yang sedang berjalan.
Hakim AS pada hari Jumaat menafikan permintaan IBM yang akan melarang bekas eksekutif dari bekerja Hakim AS pada hari Jumaat menafikan permintaan IBM yang akan menghalang bekas eksekutif dari bekerja di Dell atas kebimbangan yang ia akan menyalahkan rahasia perdagangan. Hakim, Stephen Robinson, membersihkan David Johnson untuk terus bekerja sebagai presiden kanan strategi Dell selepas IBM menuduh dia melanggar perjanjian yang tidak bertanding.

Johnson sebelum ini adalah naib presiden pembangunan korporat IBM dan telah disewa oleh pesaing Dell bulan lalu. Beliau bekerja di IBM selama 27 tahun, di mana beliau mengarahkan strategi penggabungan dan pengambilalihan syarikat.
Gagal Menghitung Objek Di Kontainer

Jika anda tidak dapat menukar keizinan objek & terima Gagal menghitung objek di dalam bekas , Kesilapan Akses Ditolak dalam Windows 10 / 8.1, lihat penetapan ini.
Bagaimana untuk mencari dan menyambung ke Rangkaian WiFi Tersembunyi di Windows 10

Apakah Rangkaian WiFi Tersembunyi atau SSID Tersembunyi? Bagaimana untuk mencari dan menyambung ke Rangkaian WiFi Tersembunyi di Windows 10? Bagaimana hendak menjadikan rangkaian wayarles anda tersembunyi? Siaran ini menjawab semua soalan tersebut.