Dockerfile中CMD与ENTRYPOINT命令的区别

2023-11-03  本文已影响0人  hehehehe

CMD与ENTRYPOINT区别

Shell格式和Exec格式命令

Shell格式:

CMD java -jar test.jar

Exec格式:

ENTRYPOINT  ["java", "-jar", "test.jar"]

Shell格式和Exec格式命令的区别

CMD和ENTRYPOINT指令支持的命令格式

CMD 指令的命令支持以下三种格式:
ENTRYPOINT 指令的命令支持以下了两种格式:

示例

ENTRYPOINT的Exec格式

# Dockerfile
FROM centos
ENTRYPOINT ["/bin/echo", "Hello"]

# 启动容器的命令: docker run -it [image]
# 输出: Hello
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello Test

ENTRYPOINT的Exec格式 + CMD的Exec格式

# Dockerfile
FROM centos
ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["Word"]

# 启动容器的命令: docker run -it [image]
# 输出: Hello Word
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello Test

ENTRYPOINT的Exec格式 + CMD的shell格式

# Dockerfile
FROM centos
ENTRYPOINT ["/bin/echo", "Hello"]
CMD Word

# 启动容器的命令: docker run -it [image]
# 输出: Hello /bin/sh -c Word
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello Test

ENTRYPOINT的shell格式

# Dockerfile
FROM centos
ENTRYPOINT /bin/echo "Hello"

# 启动容器的命令: docker run -it [image]
# 输出: Hello
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello

ENTRYPOINT的shell格式 + CMD的Shell格式

# Dockerfile
FROM centos
ENTRYPOINT /bin/echo "Hello"
CMD Word

# 启动容器的命令: docker run -it [image]
# 输出: Hello
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello

ENTRYPOINT的shell格式 +CMD的Exec格式

# Dockerfile
FROM centos
ENTRYPOINT /bin/echo "Hello"
CMD ["Word"]

# 启动容器的命令: docker run -it [image]
# 输出: Hello
# 启动容器的命令: docker run -it [image] Test
# 输出: Hello
上一篇 下一篇

猜你喜欢

热点阅读