27·Dockerfile进阶

ENTRYPOINT

ENTRYPOINT

ENTRYPOINT vs CMD

# ENTRYPOINT:容器的主命令,不容易被覆盖
ENTRYPOINT ["python", "app.py"]

# CMD:默认参数,容易被覆盖
CMD ["--port", "8080"]

组合使用

ENTRYPOINT ["python", "app.py"]
CMD ["--port", "8080"]

# docker run my-app           → python app.py --port 8080
# docker run my-app --port 9000 → python app.py --port 9000

覆盖 ENTRYPOINT

# 用 --entrypoint 覆盖
docker run --entrypoint /bin/sh my-app

Shell vs Exec 形式

# Exec 形式(推荐)
ENTRYPOINT ["python", "app.py"]

# Shell 形式(不推荐,信号处理有问题)
ENTRYPOINT python app.py

小结

指令可覆盖性用途
ENTRYPOINT主命令
CMD默认参数

练习编辑器

bash
Loading...