如何在最基本的层面上正确使用docker?
我正在使用Docker for Windows(带Hyper-V的教育版),对Docker来说我是个新手。我的工作流程感觉有点复杂,我认为有更好的方法。我是这样做的: 当我使用Docker容器开发时,我首先向我的项目添加一个如何在最基本的层面上正确使用docker?,docker,Docker,我正在使用Docker for Windows(带Hyper-V的教育版),对Docker来说我是个新手。我的工作流程感觉有点复杂,我认为有更好的方法。我是这样做的: 当我使用Docker容器开发时,我首先向我的项目添加一个Dockerfile 然后,我将通过运行类似于docker build-t containername的命令来构建容器。 Docker构建完成后,我将使用类似于Docker run-p 8080:8080 containername的命令运行容器(有时我会在此时添加一个卷)
Dockerfile
然后,我将通过运行类似于docker build-t containername的命令来构建容器。
Docker构建完成后,我将使用类似于Docker run-p 8080:8080 containername
的命令运行容器(有时我会在此时添加一个卷)
这将运行容器,并使我的Powershell处于可以从容器中读取调试消息等的状态
然后我正在测试和开发应用程序
完成开发和测试后,我需要CTRL+C以退出正在运行的容器
现在是棘手的部分:比如说,我忘了什么,想马上测试我忘了测试的东西。我会再次运行docker build-t containername.
但是docker现在会告诉我,端口已经被占用了。所以我继续这样说:
我使用以下命令搜索我的容器:docker ps
一旦我找到了名字(即silly\u walrusbeard
),我就键入docker stop silly\u walrusbeard
。现在我可以再次运行docker build-t containername.
,端口现在是空闲的
如何简化此工作流?除了CTRL+C之外,还有其他方法可以停止容器吗?谢谢你的建议 用docker ps-a
列出所有当前容器。用docker Kill
杀死他们,也许还有docker rm
当您运行新容器时,当容器停止时,使用--rm
自动释放端口(以及其他内容):
docker run --rm -it containername
(在运行Shell时,我通常需要-it
,但我不确定是否需要powershell。也许你不需要它)如果我积极地迭代代码,我倾向于在Docker之外进行,以减少这种摩擦。您可以使用一致的--name
运行docker-rm
图像,以便以后更容易docker-rm
(保存docker-ps
步骤)。您也可以在这里使用Docker Compose;重新运行docker compose up
将根据需要重新创建现有容器,并在YAML文件中记录所有容器选项。感谢--name
的建议!这太棒了,对我的工作流程来说是一个很好的改进!我也会考虑使用<代码> DOCK撰写< <代码> >它对我来说只是一个“太多”的开始,但它可能是更好的解决方案!编写DockerFile时,我的默认命令是(在bash中):docker build-t abc.&docker run-it--rm abc
。这可以处理几乎所有的事情,虽然不太复杂,但适应性很强。此外,如果我理解正确,我只需按下两个按钮即可运行它(“向上”和“回车”),使用--rm
和--it
运行docker run
,这样就不需要docker ps
和docker stop
?@是吗