Docker 命令集合
一、Docker引擎操作
1. 查看docker状态:systemctl status docker;
2. 启动docker:systemctl start docker;
3. 停止docker:systemctl stop docker;
4. 重启docker:systemctl restart docker;
5. 显示docker版本信息:docker version。
二、镜像操作
1. 列出镜像:docker images;
参数 | 说明 |
REPOSITORY | 镜像的仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建时间 |
SIZE | 镜像大小 |
2. 拉取镜像:docker pull [镜像名]:[标签TAG];
3. 搜索镜像:docker search [关键字];
参数 | 说明 |
NAME | 镜像仓库源的名称 |
DESCRIPTION | 镜像的描述 |
OFFICIAL | 是否docker官方发布 |
STARS | 点赞数 |
AUTOMATED | 自动构建 |
4. 删除一个或多个镜像:docker rmi [镜像名1]:[标签TAG] [镜像名2]:[标签TAG];
5. 将一个或多个镜像保存到tar归档文件:docker save,如:docker save images -o rhxy.tar;
使用gzip压缩:docker save images | gizp > rhxy.tar.gz
6. 加载镜像:docker load,如:docker load -i rhxy.tar,记得需要tag重命名。
三、管理容器(container)
1. 创建交互式容器(退出容器停止):docker run -it --name=容器名 镜像名 /bin/bash;
2. 创建守护式容器(后台运行,退出容器仍在运行):docker run -itd --name=容器名 镜像名 /bin/bash;
A. 目录挂载:docker run -itd --name=容器名 -v 宿主机目录:容器目录 镜像名 /bin/bash;
3. 退出容器:exit;
4. 查看正在运行容器:docker ps
-a:查看历史容器
参数 | 说明 |
CONTAINER ID | 启动时生成的ID |
IMAGE | 该容器使用的镜像 |
COMMAND | 容器启动时执行的命令 |
CREATED | 容器创建时间 |
STATUS | 当前容器状态 |
PORTS | 当前容器所使用默认端口号 |
NAMES | 启动时给容器设置的名称 |
5. 登录进入容器:docker exec -it CONTAINER-ID/NAMES bash;
执行容器目录查看命令:docker exec -it CONTAINER-ID/NAMES sh -c "ls" 或者 docker exec -it CONTAINER-ID/NAMES ls 或者 docker exec -d CONTAINER-ID/NAMES ls;
注意:-d代表在后台运行命令,-t代表分配一个伪TTY,使用docker exec执行mariadb数据库查询不能加这些参数,否则无法获取内容或者报一些错误。
bash支持回退键,sh不支持,会当做命令打印出来
6. 启动一个或多个已停止容器:docker start CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];
7. 停止一个或多个运行中容器:docker stop CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];
8. 重新启动一个或多个容器:docker restart CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];
9. 查看一个或多个容器详细信息:docker inspect CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];
查看容器的PID:docker inspect -f {{.State.Pid}} CONTAINER-ID | NAMES
10. 查看容器日志:docker logs [--tail N] [-f] CONTAINER-ID | NAMES,注意:-f参数会使日志像tail -f 一样来输出容器内部的标准输出, --tail N表示仅列出最新N条日志
--since 显示自某个时间(2024-06-25T09:52:00)之后的日志,若还要过滤指定字符,需加上2>&1 | grep 'xxx';
11. 查看容器端口映射:docker port CONTAINER-ID/NAMES;
12. 删除一个或多个容器:docker rm CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];
13. 文件拷贝:不支持通配符星号(*),可以用点(.)替换,用于拷贝目录下所有文件
文件从宿主机复制到容器:docker cp 需要复制的文件或目录 容器名称: 容器目录;
文件从容器拷贝到宿主机:docker cp 容器名称: 容器目录 需要复制的文件或目录 ;
14. 标记镜像:docker tag [源镜像名]:[标签TAG] [目标镜像名]:[标签TAG];
15. 推送镜像:docker push [目标镜像名]:[标签TAG];
16. 列出镜像历史:docker history;
四、集群管理(swarm)
1. 初始化一个swarm集群:docker swarm init [options];
2. 作为节点或管理器加入集群:docker swarm join [options] host:port;
3. 管理用于加入集群的令牌:docker swarm join-token worker|manager;
4. 离开swarm集群:docker swarm leave;
5. 更新swarm集群:docker swarm update;
6. 其他:docker swarm --help;
7. 查看集群信息:docker info;
五、管理集群中节点(node)
1. 列出swarm集群中节点:docker node ls;
2. 显示一个或多个节点的详细信息:docker node inspect container;
3. 更新节点元数据:docker node update [option] node;
添加节点标签:docker node update --label-add rabbitmq-1=true rws-cache1;
删除节点标签:docker node update --label-rm rabbitmq-1=true rws-cache1;
添加节点角色:docker node update --role manager rws-cache1;
4. 查看节点中的Task任务:docker node ps;
5. 其他:docker node --help;
六、管理服务(service)
1. 创建一个服务:docker service create [options];
2. 显示一个或多个服务的详细信息:docker service inspect --pretty [服务名];
3. 获取服务的日志:docker service logs [服务名];
4. 设置服务的实例数量:docker service scale [服务名=数量];
5. 其他:docker service --help;
七、管理网络(network)
1. 创建一个网络:docker network create [option] NETWORK;
2. 显示一个或多个网络的详细信息:docker network inspect [option] NETWORK [NETWORK1...];
3. 列出网络:docker network ls [option] ;
4. 将容器连接到网络:docker network connect [option] NETWORK CONTAINER;
5. 删除一个或多个网络:docker network rm NETWORK [NETWORK1...];
6. 其他:docker network --help;
八、多服务管理和部署(stack)
1. 部署或更新服务:docker stack deploy -c 文件名(stack).yml 编排服务名(STACK);
2. 列出Swarm集群中所有stack:docker stack ls;
3. 移除Swarm集群中某个STACK:docker stack rm STACK;
4. 其余:docker stack --help;
九、数据卷(volume)
1. 创建一个卷:docker volume create,如:docker volume create --driver local \ --opt type=nfs \ --opt o=addr=192.168.1.1,rw \ --opt device=:/data/sql \ --name rhxy_sql(该举例命令只是创建了一个挂载目录,并未在机器上执行挂载命令);
2. 查看所有卷:docker volume ls;
3. 查看某一卷信息:docker volume inspect volume1;
4. 强制删除某一卷:docker volume rm volume1;
十、其他
1. 查看WEB容器环境变量:先执行docker exec -it web bash,然后执行env命令;
2. 监控容器消耗资源:docker stats,默认每秒刷新一次;
CONTAINER ID:短格式显示容器ID
NAME:容器名
CPU %:CPU的使用情况;
MEM USAGE / LIMIT:当前使用的内存和最大可以使用的内存;
MEM %:以百分比的形式显示内存使用情况;
NET I/O:容器通过其网络接口发送和接收的数据量;
BLOCK I/O:容器从主机上的块设备读取和写入的数据量;
PIDS:容器创建的进程或线程PID号。
3. 显示docker磁盘使用情况:docker system df,删除未使用的数据:docker system prune;
可参考:Docker 官方文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架