深入了解Docker镜像操作

Docker是一种流行的容器化平台,它允许开发者将应用程序及其依赖项打包成容器,以便在不同环境中轻松部署和运行。在Docker中,镜像是构建容器的基础,有些家人们可能在服务器上对docker镜像的操作命令不是很熟悉,本文将深入探讨Docker镜像的操作。

什么是Docker镜像?

Docker镜像是一个轻量级、独立的、可执行的软件包,包含了运行应用程序所需的一切:代码、运行时环境、系统工具和库。Docker镜像是不可修改的,任何更改都会创建一个新的镜像。

Docker镜像操作命令

  • 获取现有镜像

使用docker pull命令可以从Docker Hub或其他镜像仓库获取现有的Docker镜像。例如,要获取mysql8.0的镜像,可以运行以下命令:

复制代码
docker pull mysql:8.0 

mysql:8.0 是镜像名和版本

  • 查看本地镜像列表

运行以下命令以查看本地存储的Docker镜像列表:

复制代码
docker images

如果本地镜像比较多的话可以用grep 过滤下

perl 复制代码
docker images | grep mysql

_20230901214644.png

  • 删除镜像

使用docker rmi命令可以删除本地的Docker镜像,我们可以根据镜像名+版本 号或者镜像Id删除

镜像名:版本 删除

复制代码
docker rmi python:3.10-slim

IMAGE ID 删除

复制代码
docker rmi eb5bc7d10d52

_20230901215032.png

  • 标记镜像

使用docker tag命令可以为镜像添加标签,以便更好地组织和管理镜像。

镜像名:版本

复制代码
docker tag python:3.9 python-xj:3.9-xj

IMAGE ID

复制代码
docker tag 21a7e8111dc2 python-alpine-xj:3.9-alpine-xj

_20230901215808.png

  • 镜像保存为文件

语法

css 复制代码
docker save [OPTIONS] IMAGE [IMAGE...]

参数说明:

  • OPTIONS: 可以使用以下选项来定制docker save命令的行为:

    • -o, --output=[]: 指定输出文件名,将镜像保存到指定文件,默认是STDOUT。
    • --quiet, -q: 静默模式,只输出存档文件名。
  • IMAGE: 要保存为tar存档文件的一个或多个Docker镜像的名称或ID。

保存单个镜像到tar文件

复制代码
docker save -o python.tar python:3.9

保存多个镜像到一个tar文件

复制代码
 docker save -o pythonstwo.tar python:3.9 python:3.9-alpine

_20230901220925.png

  • 用文件加载镜像
css 复制代码
docker load [OPTIONS]

参数说明:

  • OPTIONS: 可以使用以下选项来定制docker load命令的行为:

    • -i, --input=[]: 指定输入文件名,从指定文件加载镜像,默认是STDIN。
css 复制代码
 docker load -i python.tar

_20230901222020.png

总结

Docker镜像是Docker容器的基础,它们是可重用、可共享的软件包,使应用程序的部署和管理变得更加简单和可靠。在本文中,我们了解了如何获取、构建、查看、删除、标记、保存和加载Docker镜像,这些都是在Docker世界中必不可少的操作。

希望这篇文章帮助你更深入地理解Docker镜像的操作。如果你有任何问题或需要更多深入的信息,请随时留言。

相关推荐
开心猴爷16 小时前
提升 iOS 应用安全审核通过率的一种思路,把容易被拒的点先处理
后端
我家领养了个白胖胖16 小时前
Prompt、格式化输出、持久化ChatMemory
java·后端·ai编程
全栈老石16 小时前
别再折腾端口转发了:使用 Cloudflare Tunnel 优雅地分享你的 localhost
前端·后端·全栈
Java编程爱好者16 小时前
是猫踩键盘还是乱码?不,这是你刚写的正则表达式
后端
源代码•宸16 小时前
分布式缓存-GO(简历写法、常见面试题)
服务器·开发语言·经验分享·分布式·后端·缓存·golang
LaughingDangZi17 小时前
vue+java分离项目实现微信公众号开发全流程梳理
java·前端·后端
神奇小汤圆17 小时前
RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费?
后端
leeggco17 小时前
Batfish Dashboard 项目说明文档
后端
qq_124987075317 小时前
基于springboot健康养老APP的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·微信小程序·毕业设计