当前位置: 首页 > news >正文

Docker 常用命令介绍

一文搞定 Docker 常用命令

Docker常用命令主要包括基础操作到镜像、容器、数据卷、网络管理,再到运维清理,基本能满足日常开发和部署需求。

一、基础命令

(一)查看版本和系统信息

想知道自己装的 Docker 是不是最新版?敲命令

docker version

执行后,会显示客户端和服务器的版本信息,包括版本号、API 版本等。比如这样:

Client: Docker Engine - CommunityVersion:           20.10.17API version:       1.41...Server: Docker Engine - CommunityEngine:Version:          20.10.17API version:      1.41 (minimum version 1.12)...

如果想了解更详细的系统信息,比如 Docker 的根目录、镜像和容器数量等,就用:

docker info

这个命令能帮你快速掌握 Docker 的运行状态,排查问题时很有用。

(二)获取帮助

记不住命令参数?别怕,Docker 自带 “说明书”。遇到不懂的命令,直接用:

docker help

它会列出所有可用的命令分类。要是想了解某个具体命令的用法,比如docker run,就输入:

docker run --help

可看到docker run的各种参数和使用示例,比翻文档方便。

二、镜像管理

镜像就像是容器的 “模板”,容器是基于镜像创建的。学会管理镜像,是玩转 Docker 的第一步。

(一)搜索镜像

想要某个软件的镜像?先在 Docker Hub 上搜一搜:

docker search ubuntu

执行后会列出所有包含 “ubuntu” 关键词的镜像,包括镜像名称、描述、星级(表示受欢迎程度)、是否官方发布等信息。一般优先选官方镜像,更靠谱。

(二)拉取镜像

找到想要的镜像后,就可以把它下载到本地,用docker pull命令:

docker pull ubuntu:latest

这里的latest是镜像的标签(tag),用来区分不同版本。如果不指定标签,默认就是latest。要是想拉取特定版本,比如 Ubuntu 20.04,就写成:

docker pull ubuntu:20.04

拉取过程中会显示每个层的下载进度,耐心等一会儿就好。

(三)查看本地镜像

查看本地环境有哪些镜像

docker images

会列出所有本地镜像,包括仓库名、标签、镜像 ID、创建时间和大小。比如:

REPOSITORY   TAG       IMAGE ID       CREATED        SIZEubuntu       latest    27941809078c   2 weeks ago    77.8MBubuntu       20.04     f643c72bc252   2 weeks ago    72.8MB

(四)删除镜像

如果觉得有些镜像不怎么用占空间?果断删掉!用docker rmi命令:

docker rmi ubuntu:20.04

如果镜像正在被容器使用,会删除失败。这时候可以加-f参数强制删除:

docker rmi -f ubuntu:20.04

要是想删除多个镜像,把镜像 ID 或名称用空格隔开就行。

三、容器管理

容器是镜像的运行实例,大部分 Docker 操作都是围绕容器展开

(一)创建并运行容器

最常用的命令之一就是docker run,它能创建并启动一个容器。比如创建一个 Ubuntu 容器,并进入交互式终端:

docker run -it ubuntu /bin/bash

这里的-i表示保持标准输入打开,-t表示分配一个伪终端,两者结合就能和容器交互了。/bin/bash是在容器启动后执行的命令,也就是打开 bash 终端。

执行后,命令行会变成容器的终端提示符,这时候你就在容器里操作了,可以像在本地 Ubuntu 系统一样执行命令。退出容器用exit命令。

如果想让容器在后台运行,就用-d参数:

docker run -d --name my-nginx nginx

--name参数给容器起了个名字 “my-nginx”,方便后续操作。这样 nginx 容器就会在后台默默运行了。

(二)查看容器

想知道当前有哪些容器在运行?用:

docker ps

它会列出运行中容器的 ID、名称、使用的镜像、启动命令、创建时间、状态、端口映射等信息。

要是想查看所有容器(包括停止的),就加个-a参数:

docker ps -a

(三)停止、启动和重启容器

容器运行久了想暂停?用docker stop:

docker stop my-nginx

这里的 “my-nginx” 是容器名,也可以用容器 ID 代替。

想重新启动停止的容器,用docker start:

docker start my-nginx

要是容器有点 “小脾气”,可以重启一下:

docker restart my-nginx

(四)删除容器

不用的容器及时清理,用docker rm命令:

docker rm my-nginx

注意,正在运行的容器不能直接删除,要先停止或者加-f参数强制删除:

docker rm -f my-nginx

如果想删除所有已停止的容器,可以用这个命令:

docker rm $(docker ps -a -q)

docker ps -a -q会列出所有容器的 ID,然后用docker rm批量删除。

(五)查看容器日志

容器运行中出了问题?看看日志就知道。用docker logs命令:

docker logs my-nginx

如果想实时查看日志输出,加个-f参数:

docker logs -f my-nginx

就像tail -f命令一样,会持续显示新的日志内容,方便监控容器运行状态。

(六)进入容器

有时候需要进入正在运行的容器内部操作,用docker exec命令:

docker exec -it my-nginx bash

-it参数和前面docker run里的一样,也是为了获取交互式终端。执行后就进入了 “my-nginx” 容器的 bash 终端,可以查看配置文件、安装软件等。

四、数据卷管理,数据持久化必备

容器里的数据默认是临时的,容器删除后数据就没了。想要数据持久化,用数据卷(Volume)

(一)创建数据卷

用docker volume create命令创建一个数据卷:

docker volume create my-data

这样就创建了一个名为 “my-data” 的数据卷。

(二)查看数据卷列表

想知道有哪些数据卷?用:

docker volume ls

会列出所有数据卷的名称和驱动类型。

(三)挂载数据卷到容器

创建容器时,把数据卷挂载到容器的某个目录,容器里这个目录的数据就会保存在数据卷里。比如:

docker run -d -v my-data:/app/data --name my-app nginx

这里的-v my-data:/app/data表示把 “my-data” 数据卷挂载到容器的/app/data目录。不管容器怎么删,/app/data里的数据都会保存在 “my-data” 里。

(四)删除数据卷

不用的数据卷也可以删除:

docker volume rm my-data

注意,正在被容器使用的数据卷不能删除,要先删除使用它的容器。

五、网络管理

多个容器之间要通信?Docker 的网络功能

(一)查看网络列表

Docker 默认有几种网络模式,用docker network ls看看:

docker network ls

会显示网络 ID、名称、驱动类型等信息,比如 bridge(桥接网络)、host(主机网络)、none(无网络)等。

(二)创建自定义网络

默认的 bridge 网络虽然能用,但自定义网络更安全、方便。创建一个:

docker network create my-network

这样就创建了一个名为 “my-network” 的自定义桥接网络。

(三)运行容器并加入网络

让容器加入自定义网络,它们之间就能通过容器名通信了:

docker run -d --name app1 --network my-network nginxdocker run -d --name app2 --network my-network nginx

现在 app1 容器里 ping app2,就能 ping 通了,不用记 IP 地址,是不是很方便?

(四)查看网络详情

想知道某个网络里有哪些容器?用docker network inspect命令:

docker network inspect my-network

会显示网络的详细信息,包括连接到这个网络的容器、IP 地址等。

(五)删除网络

不用的网络可以删除:

docker network rm my-network

正在被容器使用的网络不能删除,要先让容器离开网络或者删除容器。

六、Docker 运维命令

Docker 用久了,会产生一些无用资源,定期维护能让它跑得更顺畅

(一)清理无用资源

清理未使用的镜像、容器、数据卷和网络,可以用这个 “docker prune” 命令:

docker system prune

执行后会提示要删除的内容,输入y确认就行。如果想连未使用的镜像也一起删,加-a参数:

docker system prune -a

(二)查看磁盘使用情况

想知道 Docker 占用了多少磁盘空间?用:

docker system df

会显示镜像、容器、本地卷、构建缓存等占用的空间。

(三)导出和导入镜像

有时候需要把镜像复制到另一台机器,可以先导出:

docker save -o ubuntu.tar ubuntu:latest

-o参数指定输出文件,这里把 ubuntu:latest 镜像导出成 ubuntu.tar 文件。

到了另一台机器,用docker load导入:

docker load -i ubuntu.tar

这样就能在新机器上使用这个镜像了。

http://www.lryc.cn/news/612057.html

相关文章:

  • vite项目中集成vditor文档编辑器
  • 八股——IM项目
  • 【20205CVPR-目标检测方向】基于事件的高效目标检测:具有空间和时间注意力的混合神经网络
  • 【2025CVPR-目标检测方向】FIRE:通过频率引导重建误差对扩散生成的图像进行鲁棒检测
  • 18650电池组PACK自动化生产线:高效与品质的融合
  • 无人机航拍数据集|第3期 无人机军事目标目标检测YOLO数据集3556张yolov11/yolov8/yolov5可训练
  • OpenHarmony源码解析之init进程
  • C++ 操作 Redis 客户端
  • Docker swarm 常用的命令集合
  • Pipeline功能实现Redis批处理(项目批量查询点赞情况的应用)
  • 数据结构——双向链表及makefile
  • NineData 新增支持 AWS ElastiCache 复制链路
  • windows搬运文件脚本
  • 互斥锁与条件变量
  • 自然语言处理基础—(1)
  • 深入理解 C++ 中的stdpriority_queue:从原理到实战的高效优先级管理
  • ssm复习
  • 【嵌入式电机控制#26】BLDC:三相模拟采集
  • springboot项目前后端通用下载方法、问题和解决方案
  • PyTorch生成式人工智能(26)——使用PyTorch构建GPT模型
  • AVDTP Media Packet 传输全流程解析:从 SDP 到连接终止
  • 基于AntDesign二次封装table组件
  • 思途AOP学习笔记 0806
  • nginx代理出https,request.getRequestURL()得到http问题解决
  • 界面规范的其他框架实现-列表-layui实现
  • TypeError: crypto$2.getRandomValues is not a function
  • 北大、蚂蚁三个维度解构高效隐私保护机器学习:前沿进展+发展方向
  • AlexNet训练和测试CIFAR10
  • Python金融分析:从基础到量化交易的完整指南
  • 如何定位一个高并发场景下API响应时间从200ms突增到2s的问题