打印在Docker容器中运行的Shell脚本的输出

时间:2018-08-01 14:39:54

标签: docker dockerfile

我有一个Dockerfile,其中已指定一个ENTRYPOINT“ my_script.sh”。在my_script.sh中,我正在执行CURL命令的剪切。构建带有此Dockerfile的Docker映像时,应如何运行my_script.sh的输出将打印在我的主机上。

Dockerfile-

FROM my-company-repo-java-base-image
ADD my_script.sh /root
ENTRYPOINT bash "/root/my_script.sh

my_script.sh

echo "Hello My Script"
curl -x POST "some_api_which_returns_json"

我已经使用命令构建了图像 docker build

我想运行此图像并在dockerhost上查看my_script.sh的输出。

2 个答案:

答案 0 :(得分:1)

给出一个标记为$ DOCKER_IMAGE的Docker映像:

docker container run -it --rm $DOCKER_IMAGE

-i保持STDIN打开
-t分配伪TTY
--rm退出时自动删除容器

有关所有选项,请参见docker container run

答案 1 :(得分:0)

当然,您可以看到shell脚本的输出。更改脚本时,请确保先删除旧映像,然后再构建新映像。否则,您的容器将反复使用旧脚本。这是一个例子

  • Dockerfile
FROM alpine:3.7

ENTRYPOINT ["/usr/bin/myscript.sh"]

COPY myscript.sh /usr/bin/myscript.sh
  • myscript.sh
#!/usr/bin/env sh
echo "Hello there"
  • 要运行的命令:
docker image rm testdocker
docker build --tag testdocker .
docker run testdocker

您应该看到Hello there行出现在终端上