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 ამ ფაილსთვის დეფოლტ პარამეტრების გადასაცემად.