使用在 Dockerfile
中指定的 ENTRYPOINT
Docker 命令,可以在启动时将参数传递给交互式 Docker 容器。
考虑以下Dockerfile
内容:
FROM debian:8 ENTRYPOINT ["echo"]
现在,让我们构建一个示例 foobar
容器:
# docker build -t="foobar" . Sending build context to Docker daemon 2.048 kB Sending build context to Docker daemon Step 0 : FROM debian:8 ---> 41b730702607 Step 1 : ENTRYPOINT echo ---> Running in 0ffdc9f73e8a ---> a9aad02a62e1 Removing intermediate container 0ffdc9f73e8a Successfully built a9aad02a62e1
接下来,我们使用交互模式启动新的 foobar
容器并提供一个参数 MY ARGUMENT
:
# docker run -t -i foobar MY ARGUMENT MY ARGUMENT
或者,如果在容器启动期间没有提供用户定义的参数,我们可以使用 CMD
命令来提供默认参数。
让我们更改我们的 Dockerfile
以包含 CMD
命令:
FROM debian:8 ENTRYPOINT ["echo"] CMD ["DEFAULT ARGUMENT"]
重建 Docker 镜像:
# docker build -t="foobar" . Sending build context to Docker daemon 2.048 kB Sending build context to Docker daemon Step 0 : FROM debian:8 ---> 41b730702607 Step 1 : ENTRYPOINT echo ---> Using cache ---> a9aad02a62e1 Step 2 : CMD DEFAULT ARGUMENT ---> Running in 42b7040b336f ---> ca6c2cddf0ea Removing intermediate container 42b7040b336f Successfully built ca6c2cddf0ea
当没有提供参数时,将触发由 CMD
命令定义的默认参数:
# docker run -t -i foobar DEFAULT ARGUMENT
日期:2020-07-07 20:57:04 来源:oir作者:oir