【docker】docker常用命令汇总

1.Docker 常用命令总结表格

Docker 环境信息命令

命令作用
docker version查看 Docker 客户端和服务端的版本信息
docker info查看 Docker 系统的详细信息,包括存储驱动、内核版本等
docker inspect <name or id>获取容器或镜像的详细配置信息
docker system df查看 Docker 所有资源的磁盘使用情况

系统日志信息常用命令

命令作用
docker logs <name or id>查看容器的日志
docker logs -f <name or id>实时跟踪容器日志
docker events查看 Docker 的事件流,实时显示系统事件

容器的生命周期管理命令

命令作用
docker create创建一个容器但不启动
docker run创建并启动一个容器
docker start <name or id>启动已经停止的容器
docker stop <name or id>停止一个正在运行的容器
docker rm <name or id>删除一个容器

容器运维操作命令

命令作用
docker exec <name or id>在运行中的容器中执行命令
docker cp <src> <dest>在主机与容器间复制文件
docker stats查看容器的实时资源使用情况
docker top <name or id>查看容器内正在运行的进程

镜像管理命令

命令作用

| docker images | 列出所有本地镜像 |
| docker pull <image> | 从仓库拉取镜像 |
| docker build -t <name> | 从 Dockerfile 构建镜像 |
| docker rmi <image> | 删除本地镜像 |

镜像仓库命令

命令作用

| docker login | 登录 Docker 仓库 |
| docker logout | 登出 Docker 仓库 |
| docker push <image> | 推送镜像到仓库 |
| docker tag <image> <repo:tag> | 为镜像打标签 |


2.使用案例

创建并运行容器

# 使用指定网络、挂载卷、环境变量等选项运行容器
docker run -d \--name myapp-container \-p 8080:80 \-e ENVIRONMENT=production \--network my-network \-v /host/data:/container/data \--restart always \nginx

参数解释:

  • -d: 后台运行容器。
  • –name: 指定容器名称。
  • -p 8080:80: 将容器内的80端口映射到宿主机的8080端口。
  • -e ENVIRONMENT=production: 设置环境变量 ENVIRONMENT 为 production。
  • –network my-network: 使用指定的 Docker 网络 my-network。
  • -v /host/data:/container/data: 将宿主机的 /host/data 目录挂载到容器内的 - /container/data。
  • –restart always: 设置容器重启策略为总是重启。

构建镜像并推送到 Docker Hub

# 使用指定 Dockerfile 构建镜像,并将其推送到 Docker Hub 仓库
docker build -t myusername/myapp:latest .# 登录 Docker Hub
docker login# 推送镜像到 Docker Hub
docker push myusername/myapp:latest

参数解释:

  • docker build -t myusername/myapp:latest .: 在当前目录下使用 Dockerfile 构建镜像,并命名为 myusername/myapp:latest。
  • docker login: 登录到 Docker Hub 以便推送镜像。
  • docker push: 将构建的镜像推送到指定的 Docker Hub 仓库。

资源限制和日志管理

# 运行容器时为其分配 CPU 和内存限制
docker run -d \--name myapp-container \-p 8080:80 \--memory="512m" \--cpus="1.0" \nginx# 查看容器日志并指定时间范围
docker logs --since="2024-11-29T10:00:00" --until="2024-11-29T12:00:00" myapp-container# 使用日志驱动程序配置容器
docker run -d \--name myapp-container \-p 8080:80 \--log-driver=json-file \--log-opt max-size=10m \--log-opt max-file=3 \nginx

参数解释:

  • –memory=“512m”: 为容器限制最大内存为 512MB。
  • –cpus=“1.0”: 为容器分配 1 个 CPU。
  • –since 和 --until: 限制查看日志的时间范围。
  • –log-driver=json-file: 使用 json-file 日志驱动,记录容器日志到 JSON 文件。
  • –log-opt max-size=10m: 限制日志文件的最大大小为 10MB。
  • –log-opt max-file=3: 设置最大日志文件数目为 3,超出时会删除最旧的日志。

定期清理不再使用的镜像和容器

# 停止所有的容器         
docker stop $(docker ps -q)        # 清理所有停止的容器         
docker container prune         # 清理所有未使用的镜像         
docker image prune -a         # 清理未使用的网络         
docker network prune         # 清理所有未使用的卷         
docker volume prune         

常用组合命令

# 1. 停止所有运行中的容器
docker stop $(docker ps -q)# 2. 删除所有停止的容器
docker rm $(docker ps -a -q -f status=exited)# 3. 删除所有未使用的镜像
docker image prune -a -f# 4. 清理所有未使用的镜像、容器、网络和卷
docker system prune -a -f --volumes# 5. 查找并删除所有悬空镜像
docker rmi $(docker images -f "dangling=true" -q)# 6. 查看容器的资源使用情况并实时监控
docker stats $(docker ps -q)# 7. 查看所有容器的日志并实时跟踪
docker logs -f $(docker ps -q)# 8. 为多个容器执行相同的命令
docker exec -it $(docker ps -q) /bin/bash# 9. 查看所有容器的状态并格式化输出
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"# 10. 批量停止并删除容器
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)# 11. 查找并删除所有未使用的 Docker 网络
docker network prune -f# 12. 查看所有容器的 CPU 和内存使用情况
docker stats --all --no-stream# 13. 为多个容器批量执行相同的操作(如启动)
docker start $(docker ps -a -q -f "status=exited")# 14. 删除所有无标签的镜像并清理缓存
docker rmi $(docker images -f "dangling=true" -q) && docker builder prune -f

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java基础入门篇】一、变量、数据类型和运算符

Java基础入门篇 一、变量、数据类型和运算符 1.1 变量 计算机中的数据表示方式是&#xff1a;“二进制(0/1)”&#xff0c;但是同时也可以兼容其他进制&#xff0c;例如八进制、十进制、十六进制等。 Java变量的本质是&#xff1a;存储在固定空间的内容&#xff0c;变量名是…

鸿蒙技术分享:Navigation页面管理-鸿蒙@fw/router框架源码解析(二)

theme: smartblue 本文是系列文章&#xff0c;其他文章见&#xff1a;鸿蒙fw/router框架源码解析&#xff08;一&#xff09;-Router页面管理 鸿蒙fw/router框架源码解析 介绍 fw/router是在HarmonyOS鸿蒙系统中开发应用所使用的开源模块化路由框架。该路由框架基于模块化开…

【博主推荐】C#的winfrom应用中datagridview常见问题及解决方案汇总

文章目录 1.datagridview绘制出现鼠标悬浮数据变空白2.datagridview在每列前动态添加序号2.1 加载数据集完成后绘制序号2.2 RowPostPaint事件绘制 3.datagridview改变行样式4.datagridview后台修改指定列数据5.datagridview固定某个列宽6.datagridview某个列的显示隐藏7.datagr…

宠物领养平台构建:SpringBoot技术路线图

摘 要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领养…

使用经典的Java,还是拥抱新兴的Rust?

在当代互联网时代的企业级开发中&#xff0c;技术栈的选择往往牵动着每个团队的神经。随着Rust语言的崛起&#xff0c;许多开发团队开始重新思考&#xff1a;是继续坚持使用经典的Java&#xff0c;还是拥抱新兴的Rust&#xff1f;这个问题背后&#xff0c;折射出的是对技术演进…

springboot学习-jdbc,jdbc-client,spring-data-jdbc

晚上又看了Dan Vega的视频&#xff0c;讲解了jdbc在spring 的发展史。 jdbc: sql语句&#xff0c;手工梳理result&#xff0c;并循环。最原始的JAVA API&#xff0c;从1998年JAVA1.0就有了。jdbc template: sql语句&#xff0c;手工处理result ,不用循环了。--从spring诞生就有…

卸载snap docker一直卡住:Save data of snap “docker“ in automatic snapshot set #3

在卸载 Snap 安装的 Docker 时卡住&#xff0c;通常是因为 Snap 在执行卸载时会先尝试保存一些快照&#xff08;自动或手动创建的&#xff09;&#xff0c;并且该过程可能因某些原因而卡住。为了解决这个问题&#xff0c;你可以按照以下步骤强制删除 Snap 安装的 Docker&#x…

Java项目运行报错“java: -source 1.5 中不支持 diamond 运算符“解决办法windows/linux系统踩坑实录

文章目录 一、问题描述二、解决方案 一、问题描述 在接手同事的Java项目时&#xff0c;依赖和打包都能正常操作&#xff0c;但一点击运行项目&#xff0c;就会报错&#xff1a; java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符…

SQL基础入门 —— SQL概述

目录 1. 什么是SQL及其应用场景 SQL的应用场景 2. SQL数据库与NoSQL数据库的区别 2.1 数据模型 2.2 查询语言 2.3 扩展性 2.4 一致性与事务 2.5 使用场景 2.6 性能与扩展性 总结 3. 常见的SQL数据库管理系统&#xff08;MySQL, PostgreSQL, SQLite等&#xff09; 3.…

开源项目:纯Python构建的中后台管理系统

来源&#xff1a;Python大数据分析 费弗里 大家好我是费老师&#xff0c;目前市面上有很多开源的「中后台管理系统」解决方案&#xff0c;复杂如「若依」那种前端基于Vue&#xff0c;后端基于Java的框架&#xff0c;虽然其提供了较为完善的一整套前后端分离权限管理系统解决方…

视频video鼠标移入移除展示隐藏(自定义控件)

效果图 代码 <template><div class"video-container" mouseover"showControls" mouseleave"hideControlsAfterDelay"><videoref"video"loadedmetadata"initializePlayer"timeupdate"updateProgress&qu…

【连接池】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

ubuntu24.04安装Kubernetes1.31.0(k8s1.30.0)高可用集群

ubuntu24.04安装Kubernetes1.30.0(kubernetes1.30.0)高可用集群 一、总体概览 目前最新版的K8S版本应该是1.31.0,我们安装的是第二新的版本1.30.0,因为有大神XiaoHH Superme指路,所以基本上没踩坑,很顺利就搭建完成了。所有的机器都采用的最新版Ubuntu-Server-24.04长期支…

Ubuntu中的apt update 和 apt upgrade

apt update 和 apt upgrade 是 Debian 及其衍生发行版&#xff08;如 Ubuntu&#xff09;中常用的两个 APT 包管理命令&#xff0c;它们各自执行不同的任务&#xff1a; apt update: 这个命令用于更新本地软件包列表。当你运行 apt update 时&#xff0c;APT 会从配置的源&…

鸿蒙HarmonyOS vs Android系统对比

鸿蒙系统 (HarmonyOS) vs Android 系统对比 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为推出的多终端操作系统&#xff0c;旨在构建一个 跨设备、跨平台、智能化 的生态系统。与 Android 系统相比&#xff0c;鸿蒙有其独特的设计理念和技术架构。以下是它们在多个关…

Hbase 部署

HBase是一个分布式的、面向列的开源数据库&#xff0c;它是Apache Hadoop项目的子项目。为了成功部署HBase&#xff0c;可以按照以下步骤进行&#xff1a; 主机部署 一、准备环节 设备基本要求&#xff1a; Hadoop和ZooKeeper&#xff1a;HBase集群需要依赖Hadoop和Zookeepe…

微软要求 Windows Insider 用户试用备受争议的召回功能

拥有搭载 Qualcomm Snapdragon 处理器的 Copilot PC 的 Windows Insider 计划参与者现在可以试用 Recall&#xff0c;这是一项臭名昭著的快照拍摄 AI 功能&#xff0c;在今年早些时候推出时受到了很多批评。 Windows 营销高级总监 Melissa Grant 上周表示&#xff1a;“我们听…

脉冲动画效果

js实现脉冲动画效果&#xff1a; 鼠标点击时&#xff0c;添加动画类&#xff0c;进而实现动画效果&#xff0c;鼠标离开时&#xff0c;移除动画类&#xff0c;回归静态图效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

Linux—进程学习—04(进程地址空间学习)

目录 Linux—进程学习—41.程序地址空间1.1虚拟地址空间的现象1.2虚拟地址空间的理解(感性) 2.进程地址空间2.0 mm_struct结构体2.1 mm_struct结构体的源代码2.2分页&虚拟地址空间解释前面的实验现象 2.3进程地址空间存在的原因2.3.1第一个原因2.3.2第二个原因2.3.3第三个原…

Java集成Sa-Token进行认证与授权

引言 软件开发过程中都必须要有的一个功能&#xff0c;那就是认证与授权&#xff0c;经过大佬们的不断更新迭代&#xff0c;使得如今实现认证与授权功能变得相对简单&#xff0c;也许你并不能真正的接触到认证与授权这一功能&#xff0c;除非你接触的项目是从0到1的&#xff0c…