How to run a CMD and open Bash when running a docker container?
我想弄清楚这件事有点困难。
所以我有一个基于Ubuntu图像的Dockerfile。在我的文件末尾,我有:
1 | CMD django-admin startproject $PROJECTNAME |
我在上一篇文章中被告知,基Ubuntu映像有一个运行/bin/bash的命令,所以我的命令实际上覆盖了这个命令(不确定这是否相关)。
我遇到的问题是如果我跑步:
1 | docker run -i -t <containerid> |
什么都没发生……Docker PS显示没有容器正在运行
但如果我跑:
1 | docker run -i -t <containerid> /bin/bash |
容器开始运行,我在shell中,docker ps显示这个容器正在运行。一切按预期工作,但我的django项目不在那里,我的理解是running/bin/bash会覆盖dockerfile中的cmd,这意味着django admin startproject永远不会运行。
从容器内部,我可以运行django admin startproject$projectname,它创建的项目没有问题,这告诉我django及其所有依赖项都已安装,并且我的环境变量正在注册。
但是,我仍然怀疑在我的dockerfile中我的cmd可能有问题,我不知道从这里到哪里去。
使用我提供的dockerfile,如果我不使用/bin/bash运行容器,容器将不会运行。
Docker图像输出:
1 2 3 | REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> cbec557d6362 About a minute ago 579 MB <none> <none> 6919c19b159a 16 hours ago |
码头工人:
1 | docker run -i -t cbec557d6362 |
我对原版发表了评论,但不管出于什么原因,现在有了新的一期。当运行
我的怀疑(我不太了解姜戈)是命令
我的建议是在你的文件中使用
构建容器,然后运行它,您应该在bash shell中,检查是否创建了项目。