Docker 镜像-管理-导入-导出

目录

  • Docker 镜像基本概念
  • Docker 镜像加速
  • Docker 镜像 常用命令
  • Docker 镜像的创建和导出导入

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 可以帮我们定时清理。

原文地址:https://www.cnblogs.com/operationhome/p/11327683.html

时间: 2024-10-09 18:49:28

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

Docker镜像的导入导出

导入/导出命令介绍 导入/导出的功能主要用于Docker镜像的导入导出,用于迁移.备份.升级等场景,或者为隔离且没有私有镜像仓库环境添加docker镜像. 导入/导出的命令主要有下面几个:export.import.save.load,可以分为2组: save和load export和import 下面分别看看他们的用法和区别 save和load 命令用法 [email protected] -> ~/manifests$ docker save --help Usage: docker sav

docker镜像容器导入导出

记录一下,省的以后自己老忘. ubuntu-14.04-x86_64.tar.gz是下载的模板文件,导入模板文件示例如下 [email protected]:~# ll ubuntu-14.04-x86_64.tar.gz  -rw-r--r-- 1 root root 154056446 May 17 10:04 ubuntu-14.04-x86_64.tar.gz [email protected]:~# cat ubuntu-14.04-x86_64.tar.gz | docker imp

docker images 保存导入导出、容器导入导出

Docker:镜像操作和容器操作 镜像操作 列出镜像: $ sudo docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE hello-world         latest              0a6ba66e537a        4 weeks ago         960 B 获取镜像: docker系统镜像可以从任意一

Docker 镜像的导入和导出

镜像的导入和导出 export 和improt [[email protected]#localhost docker]# docker run -ti ubuntu:update /bin/bash [email protected]d:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp update.txt usr var [[email protected]#localhost

docker镜像管理和容器管理以及制作本地仓库

1. 镜像管理 1.1 获取镜像 docker search centos docker pull centos:6.9 docker pull centos:7.5.1804 docker pull nginx 1.2 查询镜像 docker images docker images -q docker inspect ID/name:tag 1.3 删除镜像 docker rmi ID docker rmi `docker images -q` docker rmi $(docker ima

Docker镜像管理

docker pull  centos   //从docker.com获取centos镜像docker images  //查看本地都有哪些镜像docker tag centos aming123  //为centos镜像设置标签为aming123,再使用docker images查看会多出来一行,改行的image id和centos的一样docker search (image-name)   //从docker仓库搜索docker镜像,后面是关键词docker run -t -i cento

docker容器的导入导出

导出容器docker export 导出容器快照到本地文件$ sudo docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES7691a814370e        ubuntu:14.04        "/bin/bash"         36 hou

Docker 镜像管理

一.概念 Docker所宣称的用户可以随心所欲地"Build.Ship and Run"应用的能力,其核心是由Docker image来支撑的.Docker通过把应用运行时的环境和应用打包在一起,解决了环境部署依赖的问题,通过引入分层文件系统的概念,解决了空间利用的问题. Docker 镜像(Image)就是一个只读的模板.例如:一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序.镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器.

容器和镜像的导入导出及部署

一.镜像导出 save 1.查看镜像 docker images 2.导出镜像 docker save -o test.tar image_name 或 docker save image_name > /test.tar 二.容器导出 export 1.导出容器 命令格式为: docker export [-o|--output[=""]] CONTATINER  或: docker export 容器id/name >文件名.tar 例如: docker export