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