如果只是想在原镜像中安装一些工具,不重新指定entrypoint的话,镜像还可以和以前一样用吗?
    测试结果是可以的。
    但实际的entrypoint配置会有变化。
    以jenkins jnlp镜像为例,修改前,entrypoint相关的是这样的:

    1. "ContainerConfig": {
    2. ……
    3. "Cmd": [
    4. "/bin/sh",
    5. "-c",
    6. "#(nop) ",
    7. "ENTRYPOINT [\"jenkins-slave\"]"
    8. ],
    9. ……
    10. }
    11. ……
    12. "Entrypoint": [
    13. "jenkins-slave"
    14. ],
    15. ……
    16. "Config": {
    17. "Entrypoint": [
    18. "jenkins-slave"
    19. ],
    20. ……
    21. }

    一个三个地方定义了entrypoint

    新的dockerfile示例为:

    1. # cat ./Dockerfile
    2. FROM jenkins/jnlp:v1.1
    3. RUN rm /etc/yum.repos.d/* -rf
    4. COPY ./xxx.repo /etc/yum.repos.d/
    5. RUN yum install -y iproute bind-utils net-tools telnet wget tcpdump nc;yum clean all;

    新的image的entrypoint变为:
    ContainerConfig的Entrypoint为null ,传说对新的容器没有影响
    Entrypoint没了
    Config的entrypoint没变 ,这个对新容器还是有用的。

    所以镜像可以继续被jenkins使用,不需要特别重新指定entrypoint。

    docker.io的doc做得有点渣了,search entrypoint都没有结果。