GNU/Linux >> Belajar Linux >  >> Linux

Memulai sebuah shell di wadah Docker Alpine

Biasanya, image Alpine Linux tidak mengandung bash , Sebagai gantinya, Anda dapat menggunakan /bin/ash , /bin/sh , ash atau hanya sh .

/bin/ash

docker run -it --rm alpine /bin/ash

/bin/sh

docker run -it --rm alpine /bin/sh

abu

docker run -it --rm alpine ash

dia

docker run -it --rm alpine sh

Saya harap informasi ini membantu Anda.


[email protected]:~$ docker run -it --rm alpine /bin/ash
(inside container) / # 

Opsi yang digunakan di atas:

  • /bin/ash adalah Ash (Almquist Shell) yang disediakan oleh BusyBox
  • --rm Hapus penampung secara otomatis saat keluar (docker run --help )
  • -i Mode interaktif (Tetap buka STDIN meskipun tidak terpasang)
  • -t Alokasikan pseudo-TTY

Saat ini, gambar Alpine akan melakukan boot langsung ke /bin/sh secara default, tanpa harus menentukan shell untuk mengeksekusi:

$ sudo docker run -it --rm alpine  
/ # echo $0  
/bin/sh  

Ini sejak alpine image Dockerfiles sekarang berisi CMD perintah, yang menentukan shell yang akan dieksekusi saat container dijalankan:CMD ["/bin/sh"] .

Dalam versi gambar Alpine yang lebih lama (sebelum 2017), perintah CMD tidak digunakan, karena Docker digunakan untuk membuat lapisan tambahan untuk CMD yang menyebabkan ukuran gambar bertambah. Ini adalah sesuatu yang ingin dihindari oleh pengembang gambar Alpine. Dalam versi Docker terbaru (1.10+), CMD tidak lagi menempati lapisan, sehingga ditambahkan ke alpine gambar-gambar. Oleh karena itu, selama CMD tidak diganti, image Alpine terbaru akan melakukan booting ke /bin/sh .

Untuk referensi, lihat komit berikut ke Alpine Dockerfiles resmi oleh Glider Labs:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578d4900cb5b


Linux
  1. Kekuatan (Shell) untuk orang-orang

  2. Shell:Periksa Apakah Wadah Docker Ada?

  3. Cara Mengubah Zona Waktu Untuk Wadah Docker

  1. Menyesuaikan shell Bash

  2. Cara Keluar dari Kontainer Docker

  3. Bagaimana cara menentukan nama host untuk wadah yang sedang berjalan?

  1. Menjalankan OpenSSH di Alpine Docker Container

  2. Apa PID di host, dari proses yang berjalan di dalam container Docker?

  3. Bagaimana cara mempertahankan wadah docker alpine setelah exit digunakan?