我正在尝试基于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
答案 0 :(得分:0)
您的容器实际上不执行任何操作:它启动外壳程序,但是由于它是作为后台进程运行的,并且在stdin上没有任何内容,因此它会立即退出。
您应该阅读building and running custom images上的Docker官方教程。通常,您应该通过以下步骤进行工作:将应用程序构建到自定义映像中,设置该映像的默认CMD以运行您的应用程序,并使用docker build
和docker run
(或Docker Compose之类的工具)运行程序集。运行普通的Linux分发容器没有什么意义。
(还要记住,docker rm
容器是非常常规的,因此您在容器中的交互式外壳中所做的任何事情很可能会丢失。)