从Debian运行Docker容器:拉伸图像不起作用

时间:2019-01-10 14:18:05

标签: docker

我正在尝试基于debian:stretch图像运行容器,但这不起作用:

docker container run --detach debian:stretch

输出:

7976eb7074289a741a2b183634345fc8519359cba4d543c03b0a6d4e5d7e0d53

docker ps -a

输出:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
7976eb707428        debian:stretch      "bash"              3 seconds ago       Exited (0) 2 seconds ago                       vigorous_lumiere

它与最新的nginx图像很好地兼容:

docker run --detach nginx:latest

53ed18b5d1a7c72aa92bab0ca679269514db79f31a1d3759c2e25c7fdb1e82ff

docker ps -a

输出:

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
53ed18b5d1a7        nginx:latest        "nginx -g 'daemon of…"   2 seconds ago        Up 2 seconds                    80/tcp              admiring_hawking
7976eb707428        debian:stretch      "bash"                   About a minute ago   Exited (0) About a minute ago                       vigorous_lumiere

为什么我要实例化的基于debian:stretch映像的容器不起作用? 这是否来自debian映像?

我正在运行Docker版本18.09.1,在Ubuntu 16.04 LTS上构建4c52b90

1 个答案:

答案 0 :(得分:0)

您的容器实际上不执行任何操作:它启动外壳程序,但是由于它是作为后台进程运行的,并且在stdin上没有任何内容,因此它会立即退出。

您应该阅读building and running custom images上的Docker官方教程。通常,您应该通过以下步骤进行工作:将应用程序构建到自定义映像中,设置该映像的默认CMD以运行您的应用程序,并使用docker builddocker run(或Docker Compose之类的工具)运行程序集。运行普通的Linux分发容器没有什么意义。

(还要记住,docker rm容器是非常常规的,因此您在容器中的交互式外壳中所做的任何事情很可能会丢失。)