You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境下如何让自定义构建的Docker容器常驻Docker Desktop容器列表以实现便捷启停?

解决自定义Docker容器停止后从Docker Desktop列表消失的问题

嘿,我一眼就发现问题的关键了——你启动容器时使用了--rm参数!这个参数的作用就是容器停止后自动删除该容器,这就是为什么你停止它后,条目直接从「容器/应用」列表里消失的原因。

下面给你几个可行的解决方案,按推荐程度排序:

方案1:去掉--rm参数重新创建容器

这是最直接的修复方式,只需要修改你原来的启动命令,去掉--rm即可:

docker run -it -p 44307:80 -p 44308:443 --detach <你的镜像名称>
  • 这样创建的容器在停止后不会被自动删除,会一直保留在Docker Desktop的列表中,下次直接点击启动按钮就能用相同的参数重启。
  • 如果你之后需要手动删除容器,可以用docker rm <容器ID或名称>命令来操作。

方案2:用Docker Compose管理容器(推荐长期使用)

对于需要长期维护的应用,Docker Compose是更友好的方式,它能把容器的所有配置都写在一个YAML文件里,方便复用和修改:

  1. 在你的WebAPI项目根目录下创建一个名为docker-compose.yml的文件,内容如下:
version: '3.8'
services:
  webapi:
    image: <你的镜像名称>
    ports:
      - "44307:80"
      - "44308:443"
    restart: unless-stopped # 可选:设置容器意外退出时自动重启
  1. 在命令行进入该目录,执行启动命令:
docker-compose up -d
  1. 停止容器时执行:
docker-compose stop
  • 用这种方式创建的容器,在Docker Desktop的「容器/应用」列表里会以Compose项目的形式出现,停止后不会消失,你可以直接在界面上启停,甚至修改配置后重新部署也非常方便。

方案3:通过Docker Desktop界面创建容器

如果你更习惯图形化操作,完全可以避开命令行:

  • 打开Docker Desktop,切换到「镜像」标签页,找到你的WebAPI镜像,点击右侧的「运行」按钮。
  • 在弹出的配置窗口中,设置端口映射(44307:80、44308:443)、容器名称等参数,注意不要勾选「容器停止后自动删除」选项(这个选项对应的就是命令行的--rm参数)。
  • 点击「运行」,这样创建的容器停止后会一直留在列表中,随时可以启动。

补充说明:如果之前已经用--rm创建过容器,那这个容器已经被删除了,只能按照上面的方法重新创建。之后如果需要备份容器配置,可以用docker inspect <容器ID>命令导出配置信息,方便后续复用。

内容的提问来源于stack exchange,提问作者hwmaat

火山引擎 最新活动