මෙම 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/