Ich wusste, dass in der Dockerfile, wenn ENTRYPOINT und CMD beide zur Verfügung gestellt werden, die Werte in CMD als Standardparameter von ENTRYPOINT, dann beim Ausführen eines Containers mit zusätzlichen Parameter, der zusätzliche Parameter ersetzt die Werte von CMD in dockerfile.verwechselt mit CMD und ENTRYPOINT in Dockerfile
aber wenn ich die dockerfile von mongodb sehen, ich bin verwirrt, der Einstiegspunkt und cmd Teil seiner dockerfile:
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 27017
CMD ["mongod"]
Ich weiß, wenn ich docker run mongo:latest
laufen diese docker-entrypoint.sh mongod
sein wird, aber wenn ich laufe docker run mongo:latest --auth
Warum konnte es richtig laufen? Wird es nicht docker-entrypoint.sh --auth
sein? da die --auth
ersetzen mongod
, also warum ich docker run mongo --auth
laufen, aber es funktioniert gut?
vielen dank, es ist jetzt klar. – laoqiren