GNU/Linux >> Linux Esercitazione >  >> Linux

Avvio di una shell nel container Docker Alpine

Di solito, un'immagine Alpine Linux non contiene bash , Invece puoi usare /bin/ash , /bin/sh , ash o solo sh .

/bin/cenere

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

/bin/sh

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

cenere

docker run -it --rm alpine ash

sh

docker run -it --rm alpine sh

Spero che queste informazioni ti siano d'aiuto.


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

Opzioni usate sopra:

  • /bin/ash è Ash (Almquist Shell) fornito da BusyBox
  • --rm Rimuovi automaticamente il contenitore quando esce (docker run --help )
  • -i Modalità interattiva (Mantieni STDIN aperto anche se non collegato)
  • -t Assegna uno pseudo-TTY

Al giorno d'oggi, le immagini alpine si avvieranno direttamente in /bin/sh per impostazione predefinita, senza dover specificare una shell da eseguire:

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

Questo dal alpine image I file Docker ora contengono un CMD comando, che specifica la shell da eseguire all'avvio del contenitore:CMD ["/bin/sh"] .

Nelle versioni precedenti dell'immagine Alpine (precedenti al 2017), il comando CMD non veniva utilizzato, poiché Docker creava un livello aggiuntivo per CMD che causava l'aumento delle dimensioni dell'immagine. Questo è qualcosa che gli sviluppatori di immagini alpine volevano evitare. Nelle recenti versioni di Docker (1.10+), CMD non occupa più un livello, quindi è stato aggiunto a alpine immagini. Pertanto, fintanto che CMD non viene sovrascritto, le immagini alpine recenti si avvieranno in /bin/sh .

Per riferimento, vedere il seguente commit nei file Docker Alpine ufficiali di Glider Labs:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578d4900cb5b


Linux
  1. Personalizzazione della shell Bash

  2. Il significato di $? In uno script di shell?

  3. Come modificare il fuso orario per un container Docker

  4. Esegui uno script di shell dal comando docker-compose, all'interno del contenitore

  5. Come specificare il nome host per il contenitore in esecuzione?

Immagine Docker vs Container:le principali differenze

Che cos'è la shell in Linux?

Un'introduzione al registro dei container Quay

Come verificare se il demone Docker o un container è in esecuzione

Come ispezionare il contenuto di un'immagine Docker senza avviare un contenitore

Come SSH in un Docker Container