ENTRYPOINTনির্দিষ্ট করে কমান্ড যে সবসময় যখন ধারক শুরু মৃত্যুদন্ড কার্যকর করা হবে না।
CMDনির্দিষ্ট করে যুক্তি হল যে খাওয়ানো হবে ENTRYPOINT।
আপনি যদি কোনও নির্দিষ্ট কমান্ডের জন্য নিবেদিত কোনও চিত্র তৈরি করতে চান তবে আপনি ব্যবহার করবেন ENTRYPOINT ["/path/dedicated_command"]
অন্যথায়, আপনি যদি সাধারণ উদ্দেশ্যে কোনও চিত্র তৈরি করতে চান তবে আপনি ENTRYPOINTঅনির্ধারিত রেখে দিতে পারেন এবং CMD ["/path/dedicated_command"]যুক্তি সরবরাহ করে সেটিংসকে ওভাররাইড করতে সক্ষম হবেন তাইdocker run ।
উদাহরণস্বরূপ, যদি আপনার ডকফেরফিলটি হয়:
FROM debian:wheezy
ENTRYPOINT ["/bin/ping"]
CMD ["localhost"]
কোনও যুক্তি ছাড়াই চিত্র চালানো লোকালহোস্টকে পিন করবে:
$ docker run -it test
PING localhost (127.0.0.1): 48 data bytes
56 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.096 ms
56 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.088 ms
56 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.088 ms
^C--- localhost ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.088/0.091/0.096/0.000 ms
এখন, একটি আর্গুমেন্ট সহ চিত্রটি চালানো যুক্তিটি পিন করবে:
$ docker run -it test google.com
PING google.com (173.194.45.70): 48 data bytes
56 bytes from 173.194.45.70: icmp_seq=0 ttl=55 time=32.583 ms
56 bytes from 173.194.45.70: icmp_seq=2 ttl=55 time=30.327 ms
56 bytes from 173.194.45.70: icmp_seq=4 ttl=55 time=46.379 ms
^C--- google.com ping statistics ---
5 packets transmitted, 3 packets received, 40% packet loss
round-trip min/avg/max/stddev = 30.327/36.430/46.379/7.095 ms
তুলনার জন্য, যদি আপনার ডকফেরফিলটি হয়:
FROM debian:wheezy
CMD ["/bin/ping", "localhost"]
কোনও যুক্তি ছাড়াই চিত্র চালানো লোকালহোস্টকে পিন করবে:
$ docker run -it test
PING localhost (127.0.0.1): 48 data bytes
56 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.076 ms
56 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.087 ms
56 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.090 ms
^C--- localhost ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.076/0.084/0.090/0.000 ms
তবে একটি যুক্তি দিয়ে চিত্রটি চালানো যুক্তিটি চালিয়ে যাবে:
docker run -it test bash
root@e8bb7249b843:/#
আরও তথ্যের জন্য ব্রায়ান ডিহ্যামারের এই নিবন্ধটি দেখুন:
https://www.ctl.io/developers/blog/post/dockerfile-entryPoint-vs-cmd/