我正在尝试运行一个基于 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 42 上构建 16.04b90
您的容器实际上什么都不做:它启动一个 shell,但由于它作为后台进程运行并且其标准配置上没有任何内容,因此它会立即退出。
您应该阅读有关构建和运行自定义映像的官方 Docker 教程。 通常,您应该通过将应用程序构建到自定义映像中,设置该映像的默认 CMD 以运行应用程序,并使用 docker build
和 docker run
(或 Docker Compose 等工具)运行程序集。 运行一个普通的Linux分发容器没有多大意义。
(还要记住,docker rm
容器是非常常规的,因此您在容器中的交互式 shell 中执行的任何操作都很可能会丢失。