Sobes.tech
Junior

Docker-ის კონტექსტში რა არის entrypoint და cmd?

sobes.tech AI

პასუხი AI-სგან

ENTRYPOINT განსაზღვრავს ბრძანებას, რომელიც შესრულდება კონტეინერის დაწყებისას. თუ docker run-ის დროს გადაეცემა CMD ან ბრძანების პარამეტრები, ისინი დამატებულია ამ ბრძანების არგუმენტებად.

CMD უზრუნველყოფს დეფოლტ არგუმენტებს ENTRYPOINT-სთვის ან როგორც ცალკე ბრძანება, თუ ENTRYPOINT არ არის განსაზღვრული. თუ კონტეინერის დაწყებისას პარამეტრები გადაეცემა, ისინი გადამწერს CMD-ს მნიშვნელობას.

განსხვავებები:

თვისება ENTRYPOINT CMD
მიზანი განსაზღვრავს ძირითად ბრძანებას, რომელიც უნდა შესრულდეს უზრუნველყოფს დეფოლტ არგუმენტებს ან ბრძანებას
გადაფარვა საჭიროებს docker run --entrypoint-ს შეიძლება გადაფაროს docker run-ის არგუმენტებით
გამოყენება ENTRYPOINT-თან არგუმენტები ENTRYPOINT-სთვის დეფოლტ ბრძანება, თუ ENTRYPOINT არ არის განსაზღვრული

მაგალითები:

ENTRYPOINT და CMD-თან:

# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "გამარჯობა"]
CMD ["მსოფლიო!"]

როდესაც იშვიათად docker run თქვენი-იმიჯი შესრულდება, შესრულდება echo გამარჯობა მსოფლიო! როდესაც იშვიათად docker run თქვენი-იმიჯი კოსმოსი! შესრულდება, echo გამარჯობა კოსმოსი!

მარტო CMD-თან:

# Dockerfile
FROM alpine:latest
CMD ["echo", "გამარჯობა მსოფლიო!"]

როდესაც იშვიათად docker run თქვენი-იმიჯი შესრულდება, შესრულდება echo გამარჯობა მსოფლიო! როდესაც იშვიათად docker run თქვენი-იმიჯი echo გამარჯობა დოკერი! შესრულდება, CMD-ს გადახედავს და შესრულდება echo გამარჯობა დოკერი!

შესანიშნავია, რომ გამოიყენოთ ENTRYPOINT განსახორციელებელი ფაილისთვის და CMD ამ ფაილსთვის დეფოლტ პარამეტრების გადასაცემად.