docker:当我为了彩色输出而只使用--tty或-t(不带-i)以及--rm时,docker不会在ctrl+;C
目前我正在使用docker开发django项目 我希望看到命令的彩色输出 我在这个论坛找到了docker:当我为了彩色输出而只使用--tty或-t(不带-i)以及--rm时,docker不会在ctrl+;C,docker,tty,Docker,Tty,目前我正在使用docker开发django项目 我希望看到命令的彩色输出 我在这个论坛找到了https://forums.docker.com/t/docker-run-with-colorful-output/24542/3我必须使用的--tty或-t 下面是我的命令 hostfolder="/home/web_dev/Docker_django_testing" dockerfolder="/home/simha/app" imagename="django_testing" docker
https://forums.docker.com/t/docker-run-with-colorful-output/24542/3
我必须使用的--tty或-t
下面是我的命令
hostfolder="/home/web_dev/Docker_django_testing"
dockerfolder="/home/simha/app"
imagename="django_testing"
docker run -t -p 8000:8000 --rm -v ${hostfolder}:${dockerfolder} ${imagename} pipenv run python django_project_test/manage.py runserver 0.0.0.0:8000
我正在使用--rm
停止并在出口处移除容器。但是由于-t
的原因,即使在使用Ctrl+c退出后,容器也不会停止
下面是显示上述命令输出的图像
退出后,我检查了docker ps-a的输出,它显示容器仍在运行
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
212c039d35ae django_testing "pipenv run python d…" 4 minutes ago Up 4 minutes 0.0.0.0:8000->8000/tcp nervous_euclid
其中,如果我在没有显示颜色输出的情况下运行-t
,则与相同的命令一样,容器在退出时使用Ctrl+c
下图显示了输出
如果您在不使用-i
的情况下使用-t
,则stdin未连接到程序的stdin(在这种情况下,管道运行…
)。这意味着,当您按下控件C时,这将传递给docker run
命令,因此docker run
退出,但它不会传递给容器的主进程,因此容器保持运行。简而言之,您还需要-i
选项:
docker run -it -p 8000:8000 --rm -v ${hostfolder}:${dockerfolder} ${imagename} pipenv run python django_project_test/manage.py runserver 0.0.0.0:8000
如果不使用-i
而使用-t
,则stdin未连接到程序的stdin(在这种情况下,pipenv运行…
)。这意味着,当您按下控件C时,这将传递给docker run
命令,因此docker run
退出,但它不会传递给容器的主进程,因此容器保持运行。简而言之,您还需要-i
选项:
docker run -it -p 8000:8000 --rm -v ${hostfolder}:${dockerfolder} ${imagename} pipenv run python django_project_test/manage.py runserver 0.0.0.0:8000