Docker 镜像基本概念

我们使用的容器都是基于镜像的,镜像是由多层组成的,容器是在镜像上面添加了一个读写层。镜像一般储存在 /var/lib/docker/image/

多个容器是引用的同一个 镜像,容器不会更改镜像的内容,而是创建一个可写层,并将数据保存在 /var/lib/docker/containers 中。

Docker 镜像加速

当我们在使用 Docker 时,我们避免不了拉取镜像,我们默认的镜像源是 registry.hub.docker.com, 是在国外的,我们在国内进行拉取镜像是会比较慢的,我们通常会设置 Docker 中国镜像源或者是 阿里云镜像源,来加速下载。

网易加速器:http://hub-mirror.c.163.com

官方中国加速器:https://registry.docker-cn.com

ustc的镜像:https://docker.mirrors.ustc.edu.cn

方式一 、使用Docker官方国内镜像源

地址是 :https://registry.docker-cn.com

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

方式二 、使用阿里云镜像源地址

获取阿里云镜像源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://123.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 配置开机自启
systemctl enabled docker

方式三、设置163源

更新比阿里云慢

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 配置开机自启
systemctl enabled docker

Docker 镜像 常用命令

查找镜像 docker search

docker search imagename  # 查找镜像
docker search --filter=stars=0 imagename # 仅显示指定星级以上的镜像,默认为 0,即输出所有镜像。
docker search --no-trunc imagename # 输出信息不截断,默认是截断的。
docker search --limit int imagename # 只返回多少个查询结果,默认为25

下载镜像 docker pull

# docker  image  pull =docker pull 下载镜像
docker image pull centos = docker pull centos # 下载 centos 镜像
docker image pull -a # 下载在此分支的所有的镜像

列出镜像 docker image ls

docker image  ls  /  docker images  # 列出所有的镜像
docker image ls -a # 列出所有的镜像
docker image ls -f dangling=true # -f 过来,dangling=true 显示没有使用过的镜像
docker image ls --no-trunc # 对输出结果太长部分不进行截断,默认截断 加--no-trunc不截断。
docker image ls -q # 仅仅输出id信息

查看镜像的历史构建记录 docker image history

docker image history imagename # 查看镜像的构建过程
docker image history -q imagename # 仅仅输出id信息
docker image history --no-trunc imagename # 对输出结果太长部分不进行截断,默认截断 加--no-trunc不截断。

给镜像打标签 docker image tag

# 类似于软链接
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 一个镜像可以对应多个标签,删除一个标签的镜像时,如果该镜像还对应着对个标签,则该镜像是不会被删除的。

查看镜像的详细信息 docker image inspect

docker image inspect [OPTIONS] IMAGE [IMAGE...]  # 显示一个或者多个镜像的详细信息。

删除镜像 docker image rm

docker image rm/rmi/remove 

docker image  rm tagname   # 删除镜像,一个镜像可以对应多个标签,删除一个标签的镜像时,如果该镜像还对应着对个标签,则该镜像是不会被删除的。假设我们一个镜像有a,b,c三个标签,我们删除 c 镜像就只会删除 c标签。当一个镜像只对应一个标签时,那时候删除,是会将镜像删除的。如果是删除id的话,如果该 id 对应的镜像有对应的容器在启动的话, 镜像是删除不了的,如果没有的话,但是有多个标签的话,是会一并删除的。

docker image  rm  -f  tagname   # 强制删除镜像

docker image prune # 移除所有未标记(TAG)的镜像
-a # 移除所有未使用的镜像。
-f # 不发出询问信息 # image 帮助
docker image --help

Docker 镜像的创建和导出导入

创建镜像

  • 基于现有的容器进行创建

    我们可以基于已经创建好的容器进行创建镜像。

    docker commit 【options】 container 【REPOSITORY【:TAG】】

    -a ,--author="" : 指定作者信息;

    -c , --change=[] :提交时执行 Dockerfile 命令

    -m --message="" : 提交信息

    -p,--pause=true : 提交时暂停容器运行

  • 基于Dockerfile 创建

    docker image build

  • 从本地模板导入

    docker image import/load

导出镜像

# docker  image  save [options] container
-o # 导出到指定文件

导入镜像

# docker image  load < 导入文件名  / docker load < 导入文件名

导出容器

docker  export  container id  > name.tar
docker export container id -o d.tar

导入容器

docker  image import  name.tar  tag

注意事项

镜像中有一个 dangling - 虚悬镜像,这类镜像的 tag 为 none ,这类镜像是如何产生的?

当我们下载好一个镜像后,这个镜像后续更新了,然后我们 push 了最新的镜像,那么之前的老版本的镜像的tag 也就变成了 none , ,这种镜像就叫做 dangling - 虚悬镜像。这些镜像可以删除,使用 dangling=true 过滤条件即可。docker rmi $(docker images -aq -f "dangling=true"),有个开源工具 docker-gc 可以帮我们定时清理。

Docker 镜像-管理-导入-导出的更多相关文章

  1. docker 镜像的导入导出

    今天使用docker部署asp.net core应用程序时,发现当我们做好基础镜像之后需要把镜像导出到正式环境,因此学习了一下如何从docker中导出镜像: 1.首先通过docker images命令 ...

  2. docker镜像的导入导出

    docker save > nginx.tar nginx:latest docker load < nginx.tar

  3. docker镜像的导入和导出

    启动命令 docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3 docker run -d -p 8080:80 gitlab/gitlab-ce ...

  4. docker镜像管理(二)

    docker镜像 docker镜像含有启动容器所需要的文件系统和内容,因此,其用于创建并启动docker容器 docker镜像采用分层构建机制,最底层为bootfs,其之为rootfs bootfs: ...

  5. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  6. 2、docker镜像管理

    Docker镜像管理 镜像是Docker容器的基础,想运行一个Docker容器就需要有镜像.我们上面已经学会了使用search搜索镜像.那么这个镜像是怎么创建的呢? 创建镜像 镜像的创建有以下几种方法 ...

  7. 3.docker镜像管理基础

    一.docker镜像相关 1.About Docker Image Docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器. 采用分层构建机制,最底层为bootf ...

  8. Docker学习第一天(Docker入门&&Docker镜像管理)

    简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...

  9. 【docker专栏5】详解docker镜像管理命令

    一.国内Docker镜像仓库 由于大家都知道的原因,从国外的docker 仓库中pull镜像的下载速度实际上是很慢的.国内的一些一线厂商以及docker官方都在国内免费提供了一些docker镜像仓库, ...

随机推荐

  1. C++ 自增、自减运算符的重载和性能分析

    01 ++.--运算符重载函数的格式 自增运算符和自减运算符是有前置和后置之分的,如: a++ // 后置自增运算符 ++a // 前置自增运算符 b-- // 后置自减运算符 --b // 前置自减 ...

  2. Windows下Django项目搭建流程

    1.创建虚拟环境 virtualenv test 2.进入虚拟环境 source ./项目名/Scripts/activate 3.创建项目 django-admin startproject 项目名 ...

  3. Shadow broker=>fuzzbunch+metasploit 攻击外网测试以及metasploit大批量扫描目标IP

    0x01 前言 4月14日,影子经纪人在steemit.com上公开了一大批NSA(美国国家安全局)“方程式组织” (Equation Group)使用的极具破坏力的黑客工具,其中包括可以远程攻破全球 ...

  4. putty 配色方案

    putty 配色方案 修改地点: Default Foreground: 255/255/255 Default Background: 51/51/51 ANSI Black: 77/77/77 A ...

  5. 杂项记录 arm64 的一些特性

    函数返回值:arm64 规定了整数型返回值放在 x0 寄存器里 sp(栈空间)字节对齐:该临时变量占用 4字节空间:又因为 arm64 下对于使用 sp 作为地址基址寻址的时候,必须要 16byte- ...

  6. pytest-2:allure 的安装、使用

    版本对应: python3.4==>allure-pytest2.7.0 python3.6==>allure0pytest2.8.6 环境安装: 1.先安装好对应的python,准备好p ...

  7. 面向对象程序设计(Java) 第7周学习指导及要求

    2019面向对象程序设计(Java)第7周学习指导及要求 (2019.10.11-2019.10.14) 学习目标 掌握四种访问权限修饰符的使用特点: 掌握Object类的用途及常用API: 掌握Ar ...

  8. day55_9_19模型层的操作

    一.配置settings. 如果是queryset对象 那么可以点query直接查看该queryset的内部sql语句 将以下代码放入settings中.就可以实现当使用orm时查看sql语句: LO ...

  9. LG4556 [Vani有约会]雨天的尾巴 动态开点线段树+线段树合并

    问题描述 LG4556 题解 对于每一个结点,建立一棵动态开点线段树. 然后自低向上合并线段树. 同时维护整个值域的最大值和最大值位置. \(\mathrm{Code}\) #include<b ...

  10. angular父子组件传值和ngOnChanges的使用

    父组件中定义:  public detailbaseinfo = {}; //详情基本信息 其中detailbaseinfo 数据会通过请求获取 父组件传值给子组件如下: 子组件接收父组件传值 imp ...