В настоящее время образы Alpine будут загружаться напрямую /bin/sh
по умолчанию, без указания оболочки для выполнения:
$ sudo docker run -it --rm alpine
/ # echo $0
/bin/sh
Это , так как alpine
изображение Dockerfiles теперь содержит в CMD
команде, что определяет оболочку для выполнения при запуске контейнера: CMD ["/bin/sh"]
.
В более старых версиях образов Alpine (до 2017 года) команда CMD не использовалась, поскольку Docker использовал для создания дополнительного слоя для CMD, что приводило к увеличению размера изображения. Это то, чего разработчики Alpine хотели избежать. В последних версиях Docker (1.10+) CMD больше не занимает слой, поэтому он был добавлен в alpine
изображения. Следовательно, до тех пор, пока CMD не будет переопределен, будут загружаться последние образы Alpine /bin/sh
.
Для справки см. Следующую фиксацию в официальных альпийских файлах докеров Glider Labs:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a9655b49