如何执行docker镜像(Docker镜像管理常用操作代码示例)
如何执行docker镜像
Docker镜像管理常用操作代码示例镜像也是docker的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态。总体来说,镜像是一个包含程序运行必要以来环境和代码的只读文件,它采用分层的文件系统,将每一层的改变以读写层的形式增加到原来的只读文件上。
镜像与容器的关系
前文已经向读者介绍过容器的使用了,细心的读者可能已经发现,容器在启动或者创建时,必须指定一个镜像的名称或者id,其实,这时镜像所扮演的角色就是容器的模版,不同的镜像可以构造出不同的容器。如下命令:
docker run -itd --name nginx nginx
命令中的最后一个nginx即表示创建该容器所需要的模板
镜像的体系结构
镜像的最底层是一个启动文件系统(bootfs)镜像,bootfs的上层镜像叫做根镜像,一般来说,根镜像是一个操作系统,例如Ubuntu、CentOS等,用户的镜像必须构建于根镜像之上,在根镜像之上,用户可以构建出各种各样的其他镜像。从上面的介绍读者可以看出,镜像的本质其实就是一系列文件的集合,一层套一层的结构有点类似于Git。
镜像的写时复制机制
通过docker run 命令指定一个容器创建镜像时,实际上是在该镜像上创建一个空的可读写的文件系统层级,可以将这个文件系统层级当成一个临时的镜像来对待,而命令中所指的模版镜像则可以称之为父镜像。父镜像的内容都是以只读的方式挂载进来的,容器会读取共享父镜像的内容,用户所做的所有修改都是在文件系统中,不会对父镜像造成任何影响。当然用户可以通过其他一些手段使修改持久化到父镜像中,这个我们后面会详细介绍到。
查看
docker images
用户可以通过docker images命令查看本地所有镜像
这里一共有五个参数:
1.REPOSITORY
仓库名称,仓库一般用来存放同一类型的镜像,仓库的名称由其创建者指定。如果没有指定则为。一般来说,仓库名称有如下几种不同的形式。
- [namespace\ubuntu]:这种仓库名称由命名空间和实际的仓库名组成,中间通过\隔开。当开发者在Docker Hub上创建一个用户时,用户名就是默认的命名空间,这个命令空间是用来区分Docker Hub上注册的不同用户或者组织(类似于GitHub上用户名的作用),如果读者想将自己的镜像上传到DockerHub上供别人使用,则必须指定命名空间。
- [ubuntu]:这种只有仓库名,对于这种没有命名空间的仓库名,可以认为其属于顶级命名空间,该空间的仓库只用于官方的镜像,由Docker官方进行管理,但一般会授权给第三方进行开发维护。当然用户自己创建的镜像也可以使用这种命名方式,但是将无法上传到Docker Hub上共享。
- [hub.c.163.com/library/nginx]:这种指定url路径的方式,一般用于非Docker Hub上的镜像命名,例如一个第三方服务商提供的镜像或者开发者自己搭建的镜像中心,都可以使用这种命名方式命名。
2.TAG 用于区分同一仓库的不同镜像,默认为latest
3.IMAGE ID 是镜像的一个唯一标识符
4.CREATED 镜像的创建时间
5.SIZE 表示镜像大小
使用docker images命令可以查看本地所有的镜像,如果镜像过多,可以通过通配符进行匹配,如下:
如果需要查看镜像的详细信息,也可以通过上文提到的docker inspect 命令来查看下载
当用户执行docker run命令时,就会自动去Docker Hub上下载相关的镜像,这个就不再重复演示,开发者也可以通过search命令去Docker Hub上搜索符合要求的镜像,如下:
其中:
- NAME:表示镜像的名称
- DESCRIPTION:表示镜像的简要描述
- STARS:表示用户对镜像的评分,评分越高越可以放心使用。
- OFFICIAL:是否为官方镜像
- AUTOMATED: 是否使用了自动构建
在执行docker run命令再去下载,速度会有点慢,如果希望该命令能够快速执行,可以在执行之前,先利用docker pull命令将镜像先下载下来,然后在运行。
运行命令如下:
删除
镜像可以通过docker rmi命令进行删除,参数为镜像的id或者镜像名,参数可以有多个,多个参数之间空格隔开,如下:
有的时候,无法删除一个镜像,大部分原因是因为该镜像被一个容器所依赖,此时需要先删除容器,然后就可以删除镜像了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- docker 改变存储位置方式(修改Docker镜像默认存储位置的方法解决方法)
- 无法访问docker容器内的端口(docker容器中切换用户,提示权限不足的解决)
- docker查看容器教程(如何使用docker对容器资源进行限制)
- docker 退出容器详解(Docker 使用nsenter工具进入容器的操作)
- docker容器卡死(Docker容器不识别宋体等字体的解决方案)
- docker容器启动执行脚本(在docker容器中使用非root用户执行脚本操作)
- docker镜像实例(Docker的镜像制作与整套项目一键打包部署的实现)
- idea生成dockerfile(idea集合docker实现镜像打包一键部署)
- python配合docker(Docker构建python Flask+ nginx+uwsgi容器)
- docker容器设置网站(docker容器中布置静态网站的实现)
- 用docker搭建在线开发平台(docker部署蜗牛影院系统详细流程分析)
- dockerfile构建镜像两种方式(通过Dockerfile构建Docker镜像的方法步骤)
- docker指定基础镜像命令(Docker重命名镜像名称和TAG操作)
- docker查看管理配置信息(Docker Secret的管理和使用详解)
- docker如何简化部署(Docker使用Portainer搭建可视化界面的方法)
- docker资源隔离的实现方式(docker配置openGauss数据库的方法详解)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
- 历史惊人的相似,美国80万加仑牛奶倒入下水道,意味着什么(历史惊人的相似)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
热门推荐
- linux操作系统的关机指令有哪些(Linux系统关机命令之间的区别及用法详解)
- dedecms新字段(DEDECMSv5.6 tags.php标签不能按照时间排序的问题)
- pymongo是否线程安全(pymongo中group by的操作方法教程)
- mysql一主两从架构(MySQL主从搭建多主一从的实现思路与步骤)
- mysql dateformat(MySQL的DATE_FORMAT函数的使用)
- mysql单独导出表(mysql实现从导出数据的sql文件中只导入指定的一个表)
- linux中ipconfig命令的功能(Linux ipcs命令的使用)
- 脚本实现checkbox的全选和反选
- python基础知识重点(python语言元素知识点详解)
- php面向对象怎么调用属性(PHP面向对象程序设计__tostring和__invoke用法分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9