为什么我不能 运行 来自 IBM Liberty Docker 图像的简单 ping

Why can't I run a simple ping from the IBM Liberty Docker image

我正在学习 IBM Containers 和 Docker。我创建了一个 2 行 Docker 文件来测试它:

FROM registry-ice.ng.bluemix.net/ibmliberty
CMD ["ping","google.com"]

不幸的是,当我从这张图片中 运行 一个容器时,它给出了以下输出:

> docker run liberty-ping
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
        [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
        [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
        [-w deadline] [-W timeout] [hop1 ...] destination

当我将 FROM 行更改为 FROM ubuntu:trusty 时,ping 执行无误。怎么回事?

感谢友好的评论,我发现 websphere-liberty Dockerfile 确实包含一个入口点:https://github.com/WASdev/ci.docker/blob/master/websphere-liberty/8.5.5/developer/Dockerfile#L57

阅读 http://docs.docker.com/reference/builder/#cmd 处的 Dockerfile 参考,我了解到有一个选项可以根据 ENTRYPOINT 执行参数,但我没有意识到其他两种 CMD 语法不起作用设置 ENTRYPOINT 时。

我将 dockerfile 更改为:

FROM registry-ice.ng.bluemix.net/ibmliberty
ENTRYPOINT ["/bin/ping"]
CMD ["google.com"]

现在可以使用了!