【问题标题】:Docker ENTRYPOINT using docker run commandDocker ENTRYPOINT 使用 docker run 命令
【发布时间】:2018-02-23 09:45:00
【问题描述】:

我在命令下面运行以通过命令行设置入口点以使用此容器启动 nginx 服务

root@server:~# docker run -it --entrypoint="/bin/bash /root/service.sh" docker-reg.sogeti-aws.nl:5000/ubuntu:v3 bash

root@server:~# cat /root/service.sh

!/bin/bash

服务 nginx 启动 虽然是真的;睡1天;完成

那么是否可以使用 docker run 命令或者我只需要定义 Dockerfile

【问题讨论】:

  • 你的问题是什么?
  • 入口点脚本必须放在容器内。
  • 我的问题是我想通过 docker run 命令运行 nginx 服务,所以上述情况是否可行
  • @ Bukharov Sergey : 你能给我上面场景的语法吗

标签: docker nginx docker-compose dockerfile


【解决方案1】:

要将入口点更改为 bash,请使用以下命令:

sudo docker run --entrypoint "/usr/bin/bash" -it <any-other-options> <img>

注意:不要像我们使用-it时那样在末尾添加bash。

【讨论】:

    【解决方案2】:

    您可以在 Dockerfile 的末尾添加 ENTRYPOINT 指令。

    ENTRYPOINT ["/bin/bash","/root/service.sh"]
    

    当然,您需要将 service.sh 添加到您的图像中。再次使用 Dockerfile

    COPY service.sh /root/service.sh
    

    最终会是这样的。

    FROM docker-reg.sogeti-aws.nl:5000/ubuntu:v3
    
    COPY service.sh /root/service.sh
    ENTRYPOINT ["/bin/bash","/root/service.sh"]
    

    【讨论】:

    • 谢谢,但是如果是的话,我会用 docker run 命令而不是 Dockerfile 做同样的事情
    • 谢谢,我明白了逻辑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多