Vorrei fare qualche domanda sulle istruzioni ENTRYPOINT
e CMD
disponibili per l'uso in un Dockerfile.Docker: comprensione delle istruzioni ENTRYPOINT e CMD
- Fornire che sto montaggio directory locali come i volumi in un contenitore utilizzando
fig
odocker-compose
. Quando vengono eseguite esattamente le istruzioniENTRYPOINT
eCMD
?- Dopo che i volumi erano montati o prima?
- Se si passa uno script di bash a
ENTRYPOINT
, questo script verrà eseguito ogni volta che viene avviato un contenitore? - Se è presente uno script bash aggiunto come
ENTRYPOINT
, tutti i comandi eseguiti condocker run
odocker exec
devono essere passati come argomenti a questo script? - Quando vengono eseguite esattamente le installazioni
CMD
? Una volta avviato un container e montati i volumi? - Perché può esserci solo uno
CMD
in un file Docker? Cosa succede se voglio avviare un contenitore con più processi/eseguire severa exacutables?
1) ENTRYPOINT e CMD vengono eseguiti nell'ordine in cui appaiono nel file Docker, indipendentemente dal volume di montaggio 2) se si dispone di un ENTRYPOINT lanciando un verbo, puoi passare un parametro 3) sì per 'docker run' ma alcuni esempi potrebbero chiarirlo, e' docker exec' ti porta dentro il contenitore 4) CMD esegue swhen un container viene lanciato 5) puoi usare diversi CMD in un Dockerfile, ma verrà utilizzato solo l'ultimo, la finestra mobile è progettata per eseguire un processo, – user2915097
se si desidera eseguirne diversi, saranno necessari alcuni strumenti come supervisore https://docs.docker.com/articles/ using_supervisord/o runit o s6 o daemontools vedere https://docs.docker.com/faq/ – user2915097
Dato che CMD è facilmente sovrascritto e non ENTRYPOINT (a meno che non si esegua "docker run --entrypoint ..." di solito si ha ENTRYPOINT come ultimo di una riga nel Dockerfile e CMD come ultima riga, essendo in effetti il parametro, che può cambiare – user2915097