docker 镜像使用
当运行容器时,使用镜像如果在本地中不存在,docker会自动从docker镜像仓库中下载,默认是从docker hub公共镜像源下载。
列出镜像列表
使用命令 docker images 或者docker image ls 列出本地主机上的镜像
其中各个选项的说明:
REPOSITORY:表示镜像的仓库
TAG:镜像的标签
IMAGE ID:镜像id
CREATED:镜像创建的时间
SIZE:镜像大小
同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,使用REPOSITORY:TAG来定义不同的镜像
获取一个新的镜像
docker pull(push)
镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速:https://registry.docker-cn.com
例如: docker pull centos:6.8(没有指定版本,默认会下载最新版)
docker pull daocloud.io/huangzhichong/alpine-cn:latest
扩展:查询docker镜像所有版本https://hub.docker.com/r/library/
当本地主机使用一个不存在的镜像时,Docker就会自动下载这个镜像,如果想预先下载这个镜像,可以使用docker pull命令下载它。
下载完成后,就可以使用这个镜像运行容器
查找镜像
可以从docker hub网站来搜索镜像,docker hub网址:https://hub.docker.com/
可以使用docker search 命令搜索镜像。
选镜像的建议:
1.优先考虑官方
2.starts数量多
NAME:镜像仓库的名称
DESCRIPTION:镜像描述
OFFICE:是否docker官方发布
创建镜像
当从docker镜像仓库中下载的镜像不能满足需求时,可以通过以下两种方式对镜像进行更改
1. 从已经创建的容器中更新镜像,并且提交这个镜像
2.使用dockerfile指令来创建一个新的镜像
更新镜像
更新之前需要使用镜像创建一个容器
在运行的容器内使用apt-get update 命令进行更新,完成操作后,输入exit的命令退出容器。
然后通过docker commit 来提交容器副本。
docker commit -m="has update“ -a="runoob" 容器id runoob/ubuntu:v2
其中:-m:提交的描述信息
-a:指定镜像的作者
runoob/ubuntu:v2 指定要创建的目标镜像名
提交之后,通过命令docker images 命令查看新镜像
使用新镜像runoob/ubuntu来启动一个容器
docker run -it runoob/ubuntu:v2 /bin/bash
构建镜像
使用docker build命令从零开始创建一个新镜像。为此,需要创建一个Dockerfile文件,其中包括一组指令来告诉docker 如何创建镜像。
例如:Dockerfile文件如下
每一个指令都会在镜像上创建一个新的曾,每一个指令的前缀必须是大写的
FROM指令指定使用哪个镜像源
RUN 指令告诉docker在镜像内执行的命令,安装了什么
文件创建后,使用Dockerfile文件,通过docker build命令来构建一个镜像
参数说明:
-t:指定要创建的目标镜像名
.:Dockerfile文件所在目录,可以指定Dockerfile的绝对路径
使用docker images命令查看创建的镜像,可以看出镜像已经存在,镜像id:a827002e59fb
使用创建的镜像创建一个容器:
docker run -i -t runoob/centos:latest /bin/bash
可以看到新镜像已经包含创建的用户runoob
设置镜像标签
可以使用docker tag 命令,为镜像添加一个新标签
可以看到镜像id为a827002e59fb的镜像多了一个标签。
docker镜像的其他命令
删除镜像
docker rmi
例子:docker image rm centos:latest
导出镜像
docker save
例子:docker image save centos > docker-centos7.4.tar.gz
导入镜像
docker load
例子:docker image load -i docker-centos7.4.tar.gz
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏