Windows10下docker desktop命令行操作指南(大部分也适用于Linux)

Windows系统最大的特点就是可视化操作,点点鼠标就能操作软件。但是在特殊的情况下,比如docker desktop图标点了之后没反应,但是看后台程序,它又已经运行了,这时候就要使用命令行来操作了。

针对这次情况,所做的操作:先尝试在任务管理器里找到docker desktop,结束任务。但是后台任务还在执行。后来是结束了docker desktop backend,才彻底结束了它。然后再点图标启动,终于正常了。

尽管现在已经可以用视图操作,还是来学习实践一下命令行的操作。

首先看看docker的信息:

使用docker info命令

复制代码
docker info
Client:
 Version:    27.4.0
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  ai: Ask Gordon - Docker Agent (Docker Inc.)
    Version:  v0.5.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-ai.exe
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.19.2-desktop.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-buildx.exe

看看当前docker的容器存盘文件

复制代码
docker images

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.all-hands.dev/all-hands-ai/openhands 0.28 a25b686e60d5 10 hours ago 2.42GB

docker.all-hands.dev/all-hands-ai/runtime 0.28-nikolaik 112ae092d9eb 10 hours ago 5.27GB

docker.all-hands.dev/all-hands-ai/runtime <none> 88da4184e1f4 3 days ago 5.27GB

langgenius/dify-web 0.15.2 bbbbdd8f0dfc 6 weeks ago 436MB

langgenius/dify-api 0.15.2 7308d5efc456 6 weeks ago 3.01GB

redis 6-alpine 8d7a968b2baf 2 months ago 30.2MB

tomcat latest f62f518e5c5c 3 months ago 467MB

docker启动容器docker run

在powershell下,跟Linux下不同,最后的连接符,用的是"`" 而不是"\" 。而在cmd下,使用 ^ 符号作为换行符,下面以powershell下为例:

复制代码
docker run -it --rm --pull=always `
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik `
    -e LOG_ALL_EVENTS=true  `
    -v C:\Users\Admin\.openhands-state:/.openhands-state  `
    -p 3000:3000  `
    --add-host host.docker.internal:host-gateway  `
    --name openhands-app  `
    docker.all-hands.dev/all-hands-ai/openhands:0.28

比如我们启动一个简单的web服务,就既可以在cmd下,也可以在powershell下使用:

复制代码
docker run tomcat

docker启动容器docker start

start和run的区别是,start之后会退回到终端。

复制代码
docker start busy_galileo
busy_galileo

查看启动的容器docker ps

复制代码
docker ps
CONTAINER ID   IMAGE          COMMAND             CREATED              STATUS          PORTS      NAMES
783138d88984   tomcat         "catalina.sh run"   About a minute ago   Up 52 seconds   8080/tcp   busy_galileo
2eb731da3231   4328059557e8   "/main"             3 minutes ago        Up 3 minutes               vigorous_goodall

关闭容器docker stop

复制代码
docker stop busy_galileo
busy_galileo

C:\Users\Admin>docker ps
CONTAINER ID   IMAGE          COMMAND   CREATED         STATUS         PORTS     NAMES
2eb731da3231   4328059557e8   "/main"   4 minutes ago   Up 4 minutes             vigorous_goodall

进入正在运行的容器

复制代码
docker exec -it <container_id> /bin/bash

比如用docker ps列出当前运行容器,然后可以根据容器id进去。

删除容器docker rm

复制代码
docker rm busy_galileo
busy_galileo

用id号删除

复制代码
docker rm 2eb731da3231
2eb731da3231

从硬盘删除容器镜像存盘文件

复制代码
docker rmi tomcat

docker rmi tomcat

Untagged: tomcat:latest

Untagged: tomcat@sha256:935ff51abecc8dc793cb19c229ac7a988c8899e5fcba5e69ae96530fa76c4d56

Deleted: sha256:f62f518e5c5c117ed2b23e2868bcbb510edbc7e403246e74694c3e7e05213673

Deleted: sha256:21a52b0ff969560eb7d92bcc040367a001ba0f7da4106663e0ab101b2569f9fb

Deleted: sha256:7a43f5a5837a214963cad3eb2ed5d392e9e297e8fe683b4dd3f88d170a4af962

Deleted: sha256:09bac625fd98c313fbb8e456912fea86f9cf819497001c5a4a046978973f77db

Deleted: sha256:4dd4e3829be4d2564be9abc10745e9784e7ad62e56af90c3c244c596ce638b59

Deleted: sha256:c4a0b3b7746a883fdfd71e07ade13ec4e2ba3812fbcf9527ea49fbb643939940

Deleted: sha256:3ddd3978477832533d9fe07032a9a3bb347740076de810e640dcfc2dbf85e037

Deleted: sha256:c38291e406fe42590effeeabf6a8522b7441718345d9c2bdb56bd217e20b148c

Deleted: sha256:f1ea1df560b257879739de224d12f09c1402ccc4b18405b998927ef1de1af7f1

Deleted: sha256:687d50f2f6a697da02e05f2b2b9cb05c1d551f37c404ebe55fdec44b0ae8aa5c

当然如果文件太多,在视窗里面删除更方便。

关于docker服务相关

查看docker服务的名字

在cmd命令行下:

复制代码
sc queryex type=service state=all | findstr "docker"
SERVICE_NAME: com.docker.service

启动和关闭服务

在powershell下

复制代码
PS C:\Windows\system32> Start-Service -Name com.docker.service
PS C:\Windows\system32> Stop-Service -Name com.docker.service

但是测试下来好像并没有生效。

在以管理员启动的cmd下:

复制代码
C:\Windows\system32>net start com.docker.service
Docker Desktop Service 服务正在启动 .
Docker Desktop Service 服务已经启动成功。


C:\Windows\system32>net stop com.docker.service
Docker Desktop Service 服务正在停止.
Docker Desktop Service 服务已成功停止。

启动和停止服务显示是生效的,好像并没有生效。

相关推荐
我是唐青枫5 分钟前
Linux diff 命令使用详解
linux·运维·服务器
文牧之29 分钟前
PostgreSQL 中 VACUUM FULL 对索引的影响
运维·数据库·postgresql
裁二尺秋风40 分钟前
Nginx — http、server、location模块下配置相同策略优先级问题
运维·nginx·http
我是苏苏1 小时前
在C# WebApi 中使用 Nacos02: 配置管理、服务管理实战
运维·服务器
wacpguo1 小时前
VS Code + Linux 远程开发 go
linux·运维·golang
独隅1 小时前
VMware Workstation 创建虚拟机并安装 Ubuntu 系统 的详细步骤指南
linux·运维·ubuntu
国际云,接待2 小时前
亚马逊云服务器性能深度优化方案(2025版)
运维·服务器·科技·架构·云计算·aws
羊啊羊372 小时前
Docker - 多模块项目Dockerfile编写指南:从混沌到优雅的容器化实践
运维·docker·容器
ID_云泽2 小时前
SSH秘钥管理指南
运维·ssh
终端行者4 小时前
Linux中的shell脚本练习
linux·运维·服务器