Docker基础命令说明

Docker基础操作命令众多,这些命令可以按如下方式进行分类:

  • 镜像操作
  • 容器操作
  • 网络操作
  • 数据卷操作
  • LOG查询

等方面进行分类。

一、镜像操作命令

  • docker images:用于列出本地系统中所有的 Docker 镜像。镜像就像是一个模板,它包含了运行容器所需的所有文件、配置和依赖项。通过docker images命令,可以查看镜像的名称、标签、ID、创建时间以及大小等信息,例如:
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    05a60464f1d5   2 weeks ago   133MB
ubuntu       20.04     98c375a7b220   3 weeks ago   72.8MB
  • docker pull:用于从 Docker 镜像仓库(如 Docker Hub)拉取镜像。
docker pull nginx:latest

上述命令会从 Docker Hub 拉取最新版本的 Nginx 镜像。

  • docker build:基于 Dockerfile 构建自定义镜像。
docker build -t my-custom-image:1.0 .

此命令会在当前目录(.)查找 Dockerfile 并构建名为 my-custom-image 、标签为 1.0 的镜像。

  • docker rmi:删除本地的 Docker 镜像。
docker rmi nginx:latest

该命令会删除本地的 nginx:latest 镜像。

二、容器操作命令

  • docker ps::用于列出正在运行的 Docker 容器。
    容器是基于镜像创建的可运行实例,当使用一个镜像启动一个容器后,就可以通过docker ps命令查看容器的相关信息,如容器 ID、运行的命令、创建时间、状态、端口映射以及所使用的镜像等,例如:
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    05a60464f1d5   2 weeks ago   133MB
ubuntu       20.04     98c375a7b220   3 weeks ago   72.8MB
  • docker run:基于指定镜像创建并启动一个新的容器。
docker run -d -p 8080:80 nginx:latest

此命令会使用 nginx:latest 镜像创建一个后台运行(-d)的容器,并将容器的 80 端口映射到主机的 8080 端口。

  • docker startdocker stopdocker restart:分别用于启动、停止和重启已经存在的容器。
# 启动容器
docker start my-container
# 停止容器
docker stop my-container
# 重启容器
docker restart my-container
  • docker exec:在运行的容器内部执行命令。
docker exec -it my-container bash

该命令会以交互式(-i)和伪终端(-t)模式在 my-container 容器内启动一个 Bash 会话。

  • docker rm:删除一个或多个停止的容器。
docker rm my-container

注意:
1、不能删除一个正在run的程序;
2、如果一个image下启动了一个或多个容器,且容器正在运行。如果要删除image,必须按如下步骤进行:

  • 停止容器(docker stop my-container)
  • 删除image创建的所有容器(docker rm my-container)
  • 删除image(docker rmi my-image)

关于镜像和容器的补充说明:

两者的关系

  • 镜像与容器的关系:容器是由镜像创建而来的,镜像是容器的基础。可以将镜像看作是一个类,而容器则是这个类的实例。一个镜像可以创建多个容器实例,这些容器共享镜像的文件系统和基础配置,但各自有独立的运行时环境和状态。
  • 命令作用的关系docker images命令主要用于管理和查看镜像资源,帮助了解本地有哪些可用的镜像,以便进行拉取、构建、删除等操作。而docker ps命令则主要用于监控和管理正在运行的容器,可以通过它了解容器的运行状态,进而进行停止、启动、重启等操作。
    docker imagesdocker ps分别从镜像和容器的角度提供了对Docker环境的不同视角,它们相互配合,帮助用户全面了解和管理Docker中的资源。

三、网络操作命令

  • docker network ls:列出所有 Docker 网络。
docker network ls
  • docker network create:创建一个新的 Docker 网络。
docker network create my-network
  • docker network connectdocker network disconnect:分别用于将容器连接到网络和从网络中断开容器。
# 将容器连接到网络
docker network connect my-network my-container
# 从网络中断开容器
docker network disconnect my-network my-container

四、数据卷操作命令

  • docker volume ls:列出所有 Docker 数据卷。
docker volume ls
  • docker volume create:创建一个新的 Docker 数据卷。
docker volume create my-volume
  • docker volume rm:删除一个或多个 Docker 数据卷。
docker volume rm my-volume

五、其他常用命令

  • docker info:显示 Docker 系统的综合信息,如 Docker 版本、镜像和容器数量、存储驱动等。
docker info
  • docker logs:查看容器的日志输出。
docker logs my-container

docker logs 命令用于查看 Docker 容器的日志输出,这对于调试和监控容器内应用程序的运行状态非常有用。以下是对该命令的详细解释:

基本语法

docker logs [OPTIONS] CONTAINER

其中,OPTIONS 是可选参数,CONTAINER 是容器的名称或 ID。

常用选项及示例

1. -f--follow
  • 作用:持续跟踪日志输出,类似于 tail -f 命令。当容器内的应用程序持续产生日志时,使用该选项可以实时查看新的日志信息。
  • 示例
docker logs -f my-container

此命令会持续输出 my-container 容器的日志,直到手动停止(使用 Ctrl + C)。

2. --since
  • 作用:只显示自指定时间之后的日志。时间格式可以是 YYYY-MM-DDTHH:MM:SS 或者相对时间(如 2m 表示 2 分钟前)。
  • 示例
# 显示自 2024-01-01 12:00:00 之后的日志
docker logs --since "2024-01-01T12:00:00" my-container
# 显示自 5 分钟前之后的日志
docker logs --since 5m my-container
3. --until
  • 作用:只显示直到指定时间之前的日志。时间格式与 --since 相同。
  • 示例
# 显示直到 2024-01-01 12:00:00 之前的日志
docker logs --until "2024-01-01T12:00:00" my-container
# 显示直到 3 分钟前之前的日志
docker logs --until 3m my-container
4. -t--timestamps
  • 作用:在日志输出中添加时间戳,方便了解每条日志的产生时间。
  • 示例
docker logs -t my-container

输出的日志每条前面会带有时间戳,类似如下格式:

2024-01-01T12:00:00.123456000Z Log message here
5. --tail
  • 作用:只显示日志的最后 N 行。当日志文件非常大时,使用该选项可以快速查看最新的日志信息。
  • 示例
# 显示日志的最后 10 行
docker logs --tail 10 my-container

六、高级用法

结合 grep 进行日志过滤

可以将 docker logs 的输出通过管道传递给 grep 命令,以过滤出包含特定关键字的日志信息。

docker logs my-container | grep "error"

该命令会过滤出 my-container 容器日志中包含 “error” 关键字的行。

查找 指定开始、结束时间范围内 的数据
docker logs --since "2024-01-01T12:00:00" --until "2024-01-01T12:05:00" my-container

注意事项

  • 日志文件大小:容器的日志文件会不断增长,可能会占用大量磁盘空间。可以通过配置 Docker 的日志驱动(如 json-file 驱动的 max-sizemax-file 参数)来限制日志文件的大小和数量。
  • 日志权限:确保有足够的权限查看容器的日志。通常,使用 root 用户或具有 docker 组权限的用户可以正常执行 docker logs 命令。

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

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

相关文章

Unity屏幕适配——立项时设置

项目类型:2D游戏、竖屏、URP 其他类型,部分原理类似。 1、确定设计分辨率:750*1334 为什么是它? 因为它是 iphone8 的尺寸,宽高比适中。 方便后续适配到真机的 “更长屏” 或 “更宽屏” 2、在场景…

PawSQL for TDSQL:腾讯云TDSQL数据库性能优化全攻略

TDSQL 作为腾讯云推出的分布式数据库,凭借其高扩展性、高可用性和高性能等优势,广泛应用于金融、互联网、政务等领域。随着业务的不断增长和数据量的爆炸式增长,如何优化 TDSQL 数据库的性能,成为众多企业和开发者面临的挑战。本文…

机器学习(七)

一,监督学习和无监督学习聚类的数据集比较: 监督学习: 数据集包括输入的数据和与之对应的标签 无监督学习: 数据集仅含有输入的数据,要求算法自己通过所给的数据集来确定决策边界 二,聚类(Clustering): 聚…

海鲜水产行业wordpress外贸主题

模板采用清新的海洋风格设计,完美契合水产和海鲜行业的特点,让您的网站在众多竞争者中脱颖而出。 高质量的图片展示区域,让您可以展示新鲜捕捞的海鲜产品,吸引客户的注意力。 多功能性,满足业务需求: 模…

调优案例一:堆空间扩容提升吞吐量实战记录

📝 调优案例一:堆空间扩容提升吞吐量实战记录 🔧 调优策略:堆空间扩容三部曲 # 原配置(30MB堆空间) export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置(扩容至120MB&am…

【大模型系列】llama.cpp本地运行大模型

上一篇链接: 【大模型系列】使用ollama本地运行千问2.5模型 我们讲了ollama本地运行大模型,这里我们介绍另一种本地运行大模型的方法:llamacpp 软件下载 下载地址:https://github.com/ggml-org/llama.cpp/releases 下载cpu版本的llamacpp&a…

maven之自定义插件

写在前面 在使用maven肯定是离不开插件的,比如执行mvn clean或者时mvn compile其实运行的就是绑定的默认插件。虽然我们一般不需要来自定义插件,但是为了使用的过程中更加的清晰,来尝试自定义插件还是很有必要的,所以本文就一起来…

工程实践:如何使用SU17无人机来实现室内巡检任务

阿木实验室最近发布了科研开发者版本的无人机SU17,该无人机上集成了四目视觉,三维激光雷达,云台吊舱,高算力的机载计算机,是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…

【瞎折腾/Dify】使用docker离线部署Dify

文章目录 说在前面安装Docker(外网)获取Dify源码(外网)拉取docker镜像(外网)导出镜像(内网)导入镜像(内网)运行问题 说在前面 外网操作系统:windows内网操作系统:ubuntu外网docker desktop版本:4.29.0外网docker版本:version 26.0…

【Git】配置Git

配置Git 忽略特殊文件 在日常开发中,有些文件不想或不应该提交到远端,如保存数据库密码的配置文件。 在Git工作区的根目录下创建一个特殊的.gitignore文件,把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.gi…

mysql学习-常用sql语句

1、安装mysql参考网上链接,进入mysql数据库 mysql -u root -p 2、数据库操作 2.1、创建数据库 create database 数据库名 default character set utf8; 2.2、显示所有数据库 show databases; 2.3、选择数据库 use elementInfo; 2.4、删除数据库 drop database…

PostgreSQL16 的双向逻辑复制

一、配置 双向逻辑复制具体步骤 参考:PostgreSQL 16 双向逻辑复制与事务回环控制 - 墨天轮 1. 安装和准备环境 确保在所有参与复制的服务器上都安装了 PostgreSQL 16。主服务器:192.168.0.100从服务器:192.168.0.102 2. 配置 PostgreSQL 在每个服务…

FastAPI复杂查询终极指南:告别if-else的现代化过滤架构

title: FastAPI复杂查询终极指南:告别if-else的现代化过滤架构 date: 2025/3/14 updated: 2025/3/14 author: cmdragon excerpt: 本文系统讲解FastAPI中复杂查询条件的构建方法,涵盖参数验证、动态过滤、安全防护等18个核心技术点。通过引入策略模式、声明式编程等技术,彻…

C++前缀和

个人主页:[PingdiGuo_guo] 收录专栏:[C干货专栏] 大家好,今天我们来了解一下C的一个重要概念:前缀和 目录 1.什么是前缀和 2.前缀和的用法 1.前缀和的定义 2.预处理前缀和数组 3.查询区间和 4.数组中某个区间的和是否为特定…

机器学习基础

目录 泛化误差 偏差和方差 噪声 生成模型和判别模型 正态分布(Normal Distribution) 超参数选择 Grid Search 网格搜索 Random Search 随机搜索 Hyperopt Hyperas 参数估计方法对比 MLE 最大似然估计 MAP最大后验估计 贝叶斯估计 距…

中山六院团队发表可解释多模态融合模型Brim,可以在缺少分子数据时借助病理图像模拟生成伪基因组特征|顶刊解读·25-02-14

小罗碎碎念 在癌症诊疗领域,精准预测患者预后对临床决策意义重大。传统的癌症分期系统,如TNM分期,因无法充分考量肿瘤异质性,难以准确预测患者的临床结局。而基于人工智能的多模态融合模型虽有潜力,但在实际临床应用中…

系统可观测性(5)OpenTelemetry基础使用

系统可观测性(5)OpenTelemetry基础概念 Author: Once Day Date: 2025年3月12日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 本文档翻译整理自《OpenTelemetry Docs》&a…

OpenHarmony自定义子系统、部件与模块

如图所示,OpenHarmony系统源码中,大体上按照不同种类的功能分成多个子系统,然后一个子系统内部进一步在同类功能上的差异性划分成一个或多个部件,也就是说一个部件表示一个具体功能的源码集合。最后一个部件的源码再划分成一个或多…

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…

uni-app打包h5并部署到nginx,路由模式history

uni-app打包有些坑,当时运行的基础路径填写了./,导致在二级页面刷新之后,页面直接空白。就只能换一个路径了,nginx也要跟着改,下面是具体步骤。 manifest.json配置web 运行路径写/h5/,或者写你们网站的目…