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

零基础学Docker(2)--基本命令

上期我们了解了Docker的一些基本信息也成功地安装了Docker这里我们可以做个小测试:

docker run hello-word

运行上面代码表示运行hello-world的镜像:

可以看到,首先提示了没有在本地找到 "hell-world:latest"这个镜像,后面又提示尝试从远程仓库拉取这个镜像,拉取成功等等

1. 帮助命令

1.1 docker version

显示docker的版本信息

1.2 docker info

显示docker的系统信息,包括容器数量镜像数量运行的数据量等信息

1.3 docker 命令 --help

显示命令的帮助信息

在我们学习过程中会经常用到这个命令,可以查看各种命令的使用方法

2. 镜像命令

2.1 docker images

查看本地主机上的镜像

可以看到这里就显示出了本地的镜像信息:

  • REPOSITORY:镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像的ID
  • CREATED:镜像的创建时间
  • SIZE:镜像的大小

我们使用 help命令查看 docker images是否还有其它功能:

可以看到images命令还有一些可选项,其中比较常用到的是 -a展示所有镜像,和-q只显示id

2.2 docker pull

下载镜像

这里执行docker pull mysql实际执行的是
docker pull docker.io/library/mysql:latest

我们也可以指定版本下载:

这里可以看到分层下载的好处,之前版本能共用的就不会下载了

2.3 docker rmi

删除镜像

通过id删除:

删除所有:

$()表示传参数,这里参数是docker images -aq返回的所有镜像的id

3. 容器命令

3.1 docker run

创建并启动一个容器

下载一个centos的镜像来进行测试

docker run -it centos bin/bash

-it:两个参数的组合,-i 保持标准输入打开,-t 分配一个伪终端(让你能与容器交互)

可以看到运行后主机名变了说明我们进入了centos容器

可以输入exit命令,停止容器并退出

也可以使用Ctrl + P + Q,不停止容器退出

3.2 docker ps

查看运行中的容器

可以看到这里没有,因为我们刚才使用的exit退出,会停止容器

我们可以使用 -a参数,可以展示运行中和运行过的容器:

还可以使用 -n指定查询的数量:

-q 只显示id:

3.3 docker rm

删除容器

删除后会返回容器的id,如果要删除正在运行的容器可以使用-f参数

3.4 启停容器

docker start 启动容器

docker restart重启容器

docker stop 停止容器

4. 其它常用命令

4.1 后台启动容器
docker run -d 镜像名

这里启动后我们使用ps发现没有在运行的容器,这是因为我们启动的容器中没有东西在运行,于是自动停止了

我们可以在启动时让centos做一些事情:

docker run -d centos /bin/sh -c "while true; do echo study docker;sleep 1;done"

这里表示让centos每间隔一秒输出study docker

4.2 查看日志

查看容器当前的所有日志

docker logs 容器id

查看最新的5条日志

docker logs -n 5 容器id

docker -f 容器id

跟踪日志输出,即后面有新日志会立刻显示出来

docker -t 容器id,会在每行日志前面显示日志生成的时间

4.3 查看容器中进程的信息
docker top 容器id

4.4 查看进程元数据
docker inspect 容器id

执行后会输出非常多信息:

4.5 进入当前正在运行的容器
docker exec -it 容器id bashShell

-it表示以交换模式运行

可以看到成功进入了centos容器并能正常执行命令

也可以使用 attach 命令

docker attach 容器id

区别是,exec是进入容器后开启一个新的终端,attach是进入容器正在执行的终端不会启动新的进程,如果我们现在使用attach进入循环输出study docker的终端。

4.6 从容器拷贝文件到主机
docker cp 容器id:文件路径 拷贝到的位置

这里我们在容器里创建了一个test.java文件

在主机中使用cp命令

可以看到成功拷贝了,注意,这里的容器可以是不在运行状态的,只要容器没有被删除,文件就会存在

http://www.dtcms.com/a/392550.html

相关文章:

  • 华为FusionCloud私有云:企业数字化转型的智能底座
  • 【LVS入门宝典】LVS NAT模式深度解析:从原理到实战配置指南
  • MQ 项目(实习项目,初步更新)
  • Redis中Lua脚本的应用场景分析
  • phpkg 让 PHP 摆脱 Composer 依赖地狱
  • Python -- 人生重开模拟器(简易版)
  • CSS基础查缺补漏(持续更新补充)
  • 用户生命周期价值(CLV)目标变量系统性设计与实践(二)
  • TDengine 与工业应用平台 Ignition 集成
  • JVM垃圾收集中判断对象存活相关问题
  • 【C++】告别“类型转换”踩坑,从基础到四种核心强制转换方式
  • WinDivert学习文档之五-————编程API(八)
  • 【LVS入门宝典】LVS NAT模式深度解析:流量走向与IP包头修改机制
  • 第二章 微调:定制专属模型——从通用能力到场景适配
  • 为统信UOS2.0离线安装python3.11.9开发环境
  • Maven 进阶:依赖管理的 “坑” 与解决方案
  • 2.15Vue全家桶-VueRouter
  • 五、Maven引入
  • 通过 TypeScript 在 Vue 3 中利用类型系统优化响应式变量的性能
  • Maven 入门:从 “手动导包” 到 “自动化构建” 的第一步
  • 【Python】数组
  • AI任务相关解决方案18-基于大模型、MCP、Agent与RAG技术的数据分析系统研究报告
  • 飞牛NAS系统版本重大更新:支持挂载115网盘!挂载教程来袭!
  • SpringAI、Dify与Ollama的技术落地与协作
  • Python Selenium 核心技巧与实战:从基础操作到极验滑动验证码破解
  • PyQt6 实战:多源输入 ASCII 艺术转换器全解析(图片 / 视频 / 摄像头实时处理 + 自定义配置)
  • Java 大视界 —— Java 大数据在智能农业病虫害精准识别与绿色防控中的创新应用
  • Qt qDebug()调试函数,10分钟讲清楚
  • Go语言基于 DDD(Domain Driven Design)领域驱动设计架构实现备忘录 todolist
  • Go基础:Go变量、常量及运算符详解