我正在使用Docker for Windows(带有Hyper-V的教育版),并且对Docker来说还很陌生。我的工作流程有点复杂,我认为有更好的方法。这是我的工作:
使用Docker容器进行开发时,我会先向项目添加Dockerfile
。
然后我将通过运行类似docker build -t containername .
的命令来构建容器
当Docker完成构建后,我将使用类似docker run -p 8080:8080 containername
的命令运行容器(有时我会在此时添加一个卷)
这将运行容器并使Powershell处于一种状态,在该状态下,我可以从容器中读取调试消息等。
然后我正在测试和开发应用程序。
完成开发和测试后,我需要使用CTRL + C退出正在运行的容器。
现在是棘手的部分:说,我忘记了一些东西,想测试一下我忘记测试的东西。我将再次运行docker build -t containername .
但,泊坞窗现在会告诉我,该端口已被占用。所以我继续这样:
我使用以下命令搜索我的容器:docker ps
一旦找到名称(即silly_walrusbeard
),我就输入docker stop silly_walrusbeard
。现在,我可以再次运行docker build -t containername .
,该端口现在是空闲的。
如何简化此工作流程?是否有CTRL + C的替代方法也可以停止容器?感谢您的建议!
答案 0 :(得分:1)
列出所有带有docker ps -a
的当前容器。用docker kill <ID>
甚至docker rm <ID>
杀死他们。
当您运行新容器时,使用--rm
可以在容器停止时自动释放端口(以及其他功能):
docker run --rm -it containername
(运行shell时我通常需要-it
,但我不确定powershell。也许您不需要它)