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 服务已成功停止。

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

相关推荐
少妇的美梦18 小时前
logstash教程
运维
容器魔方18 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
chen94518 小时前
k8s集群部署vector日志采集器
运维
chen94518 小时前
aws ec2部署harbor,使用s3存储
运维
muyun28001 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220891 天前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy1 天前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡
Nazi61 天前
k8s的dashboard
云原生·容器·kubernetes