Skip to content

Instantly share code, notes, and snippets.

@dhermes
Last active January 5, 2019 16:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhermes/c1d7d3717defd3d79aa5ba5bd05b0773 to your computer and use it in GitHub Desktop.
Save dhermes/c1d7d3717defd3d79aa5ba5bd05b0773 to your computer and use it in GitHub Desktop.
Difference between CMD and ENTRYPOINT in Dockerfile

Using only ENTRYPOINT

$ docker build --file Dockerfile1 --tag foo/foo1 .
...
$ docker run --rm --tty --interactive foo/foo1
['run.py']
$ docker run --rm --tty --interactive foo/foo1 mine only
['run.py', 'mine', 'only']

Using only CMD

$ docker build --file Dockerfile2 --tag foo/foo2 .
...
$ docker run --rm --tty --interactive foo/foo2
['run.py', 'a', 'bisee']
$ docker run --rm --tty --interactive foo/foo2 python3.7 run.py mine only
['run.py', 'mine', 'only']

Using both ENTRYPOINT and CMD

$ docker build --file Dockerfile3 --tag foo/foo3 .
...
$ docker run --rm --tty --interactive foo/foo3
['run.py', 'a', 'bisee']
$ docker run --rm --tty --interactive foo/foo3 mine only
['run.py', 'mine', 'only']

Using neither ENTRYPOINT nor CMD

$ docker build --file Dockerfile4 --tag foo/foo4 .
...
$ docker run --rm --tty --interactive foo/foo4
Python 3.7.2 (default, Dec 26 2018, 08:50:25)
[GCC 6.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
$
$ docker run --rm --tty --interactive foo/foo4 python3.7 run.py mine only
['run.py', 'mine', 'only']
FROM python:3.7-alpine
WORKDIR /app
COPY run.py run.py
ENTRYPOINT ["python3.7", "run.py"]
FROM python:3.7-alpine
WORKDIR /app
COPY run.py run.py
CMD ["python3.7", "run.py", "a", "bisee"]
FROM python:3.7-alpine
WORKDIR /app
COPY run.py run.py
ENTRYPOINT ["python3.7", "run.py"]
CMD ["a", "bisee"]
FROM python:3.7-alpine
WORKDIR /app
COPY run.py run.py
import sys
def main():
print(sys.argv)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment