Docker之镜像
镜像(Images)
镜像是Docker的三大核心之一,类似于虚拟机,作用和虚拟机是一样的,唯独是组成部分会有些区别。简单的说如果我们想启动一个容器就必须要有镜像。docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,docker会尝试先从默认镜像仓库下载(Docker Hub),用户也可以通过配置,使用自定义的镜像仓库。
镜像文件存储结构?
docker相关文件存放在:/var/lib/docker目录下
/var/lib/docker
├── builder
├── buildkit
├── containerd
├── containers
├── image
├── network
├── overlay2
├── plugins
├── runtimes
├── swarm
├── tmp
├── trust
└── volumes
国内doceker仓库地址
vim /etc/docker/daemon.json
{
"registry-mirrors":[ "https://registry.docker-cn.com" ]
}
#获取镜像
docker pull 【镜像名称】 [root@controller ~]# docker pull ubuntu
Using default tag: latest
Trying to pull repository docker.io/library/ubuntu ...
latest: Pulling from docker.io/library/ubuntu
660c48dd555d: Pull complete
4c7380416e78: Pull complete
421e436b5f80: Pull complete
e4ce6c3651b3: Pull complete
be588e74bd34: Pull complete
Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79 #查看镜像
[root@controller ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 20c44cd7596f 3 days ago 122.8 MB
字段解释:
REPOSITORY 来自哪个仓库
TAG 镜像标签信息 (别名的作用)
IMAGE ID 镜像ID号(唯一)
CREATED 创建时间
SIZE 大小
#获取一个ubuntu 14.04版本
[root@controller ~]# docker pull ubuntu: 14.04
[root@controller ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 20c44cd7596f 3 days ago 122.8 MB
docker.io/ubuntu 14.04 d6ed29ffda6b 3 days ago 221 MB
我们可以看到这两个images来自同一个仓库,TAG标签不一样标记不同的镜像,使用docker tag命令可以为本地镜像添加新的标签。 #查看镜像详细信息
docker inspect 【IMAGE ID】
[root@controller ~]# docker inspect 20c44cd7596f
[
{
"Id": "sha256:20c44cd7596ff4807aef84273c99588d22749e2a7e15a7545ac96347baa65eda",
"RepoTags": [
"docker.io/ubuntu:latest"
],
...
-f参数指定查询:
[root@controller ~]# docker inspect -f {{".RepoTags"}} 20c44cd7596f
[docker.io/ubuntu:latest] #搜索镜像
[root@controller ~]# docker search nginx
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/nginx Official build of Nginx. 7317 [OK]
docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1174 [OK]
docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 475 [OK] #删除镜像
docker rmi 【标签或ID】
[root@controller ~]# docker rmi ubuntu:latest
Untagged: ubuntu:latest #运行一个容器
[root@controller ~]# docker run ubuntu echo 'hello I am ubuntu #查看存在的所有容器
[root@controller ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bb8a93f5d34 ubuntu "echo 'hello I am ubu" About a minute ago Exited (0) About a minute ago gigantic_heyrovsky
#这时删除镜像出现错误
[root@controller ~]# docker rmi ubuntu
Error response from daemon: conflict: unable to remove repository reference "ubuntu" (must force) - container 2bb8a93f5d34 is using its referenced image 20c44cd7596f
#强制删除加-f
[root@controller ~]# docker rmi -f ubuntu #创建镜像
创建镜像有三种方法:
1.已有镜像创建
2.本地模板导入
3.Dockerfile创建 1.已有镜像创建
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Options:
-a, --author string
-c, --change value
--help
-m, --message string
-p, --pause #首先启动一个镜像
[root@controller ~]# docker run -ti ubuntu:14.04 /bin/bash
root@c5439518dcbe:/# touch test
root@c5439518dcbe:/# exit
记住容器的ID:c5439518dcbe #创建一个新的镜像
[root@controller ~]# docker commit -m "added a new file" -a "Docker newbee" c5439518dcbe test
sha256:4efd37e84d4998fbc7cff55d21fa360fdd60f1d7319050e70512754bf2851b7f
[root@controller ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test latest 4efd37e84d49 18 seconds ago 221 MB #模板下载:https://download.openvz.org/template/precreated/
[root@controller ~]# cat ubuntu-12.04-x86-minimal.tar.gz |docker import - ubuntu:12.04
sha256:8d6161cea96c6b2f2ef39be5b2370e38cb003e8f3b5c2d3f960e0e7d37733d41 #导出镜像到本地
[root@controller ~]# docker save -o ubuntu_12.04.tar ubuntu:12.04
#从本地导入镜像
[root@controller ~]# docker load --input ubuntu_12.04.tar
或
[root@controller ~]# docker load < ubuntu_12.04.tar #上传镜像(默认上传到Docker hub)
[root@controller ~]# docker push --help
Usage: docker push [OPTIONS] NAME[:TAG]
[root@controller ~]# docker tag test:latest user/test:latest
[root@controller ~]# docker push user/test:latest
小结:
镜像是使用Docker的前提,因此可以结合公司的生产环境制作好镜像,方便使用。
Docker之镜像的更多相关文章
- Docker:镜像操作和容器操作
镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...
- Docker的镜像
镜像是容器的运行基础,容器是镜像运行后台的形态 镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上 镜像的系统结构 ...
- Docker - Docker国内镜像的配置及使用
Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...
- Docker image 镜像介绍
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- Docker - 定制镜像
Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...
- 从零开始构建docker基础镜像
段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...
- Docker 基础 : 镜像
目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...
- 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面
搭建docker本地镜像仓库并提供权限校验及UI界面 docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本 ...
- 使用Nexus3构建Docker私有镜像仓库
一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并 ...
- Docker JDK镜像
Docker jdk镜像 说明 使用alpine-glibc作为基础镜像 JAVA JDK/JRE以1.8为基准 下载文件 1.下载JDK/JRE压缩包. jre-8u201-linux-x64.ta ...
随机推荐
- 如何删除chrome地址栏里面曾经输错的地址
在chrome浏览器的地址栏输入你想删除的网址的部分字幕,比如,在地址栏输入form,然后用键盘上的方向键定位到你想删除的那个错误的地址,如下图所示 然后在键盘上按 shift+del 组合键将其 ...
- 支付宝pc网页支付
本文讲解如何在pc网页上完成支付宝的支付功能, 详细讲解了支付宝的配置信息,项目如何使用配置信息等, 本项目中代码可以直接运行, 也可以将代码迁移至你自己的项目中直接使用. 注意: 下面讲解的功能只能 ...
- V4l2的结构体 --- ioctl【转】
在应用程序获取视频数据的流程中,都是通过 ioctl 命令与驱动程序进行交互,常见的 ioctl 命令有: VIDIOC_QUERYCAP /* 获取设备支持的操作 */ VIDIOC_G_FMT ...
- 用json方法来作深拷贝应该知道的一点东西!
之前写js比较多的的时候也写过深拷贝,浅拷贝,继承啥的,还有自定义的监听事件.然而过了很久都忘了. 最近在项目上用的深拷贝都是 b = JSON.parse( JSON.stringify(a) ) ...
- iOS 使用矢量图
iOS 使用矢量图 iOS 图标通常用 PNG 格式的图片.PNG 图片放大到超过自身的大小就会模糊.可以使用 PDF 格式的矢量图,优点是任意改变图片大小并且保持清晰度. 简单使用 与 PNG 格式 ...
- vs2012 .net4.0 nuget 导入NHibernate4.0版本
问题描述: 最近弄一个项目,打算使用NHibernate,本人使用的VS2012,项目用的是.NET 4.0.在使用Nuget安装引用的时候,发现安装失败,提示如下图: 意思是当前安装的NHibern ...
- Spring(一)Spring的第一滴血
前言 开始工作了,但是一进来公司本来是做爬虫和数据分析的,但是走了一个后端的,导致我必须要去顶替他的工作.因为这个项目使用的是Spring. SpringMVC.Hibernate所以我又要去回忆一下 ...
- JavaSE(十一)之异常处理详解
一.异常概述 在我们日常生活中,有时会出现各种各样的异常,例如:职工小王开车去上班,在正常情况下,小王会准时到达单位.但是天有不测风云,在小王去上班时,可能会遇到一些异常情况,比如小王的车子出了故障, ...
- poj 3294
Life Forms Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 12688 Accepted: 3552 Descr ...
- 图像变换之Census变换
图像的Census变换 Census变换属于非参数图像变换的一种,它能够较好地检测出图像中的局部结构特征,如边缘.角点特征等.传统Census变换的基本思想是:在图像区域定义一个矩形窗口,用这个矩形窗 ...