docker镜像操作,镜像操作

Linux系统历史衍生图:

  • 1.得到镜像
  • 2.列出镜像
  • 3.创办镜像
    • 3.1 修改已有镜像
    • 3.2 使用Dockerfile成立镜像
      • 创建Dickerfile文件
      • 应用build来创设镜像
      • 选择新创立的镜像来运转容器
  • 4.移除镜像
  • 5.导入和导出
    • 5.1保存镜像到地头
    • 5.2导入当半夏件到镜像
  • 6.其他
    • 6.1修改镜像标签
    • 6.2上传镜像

1、搜寻镜像

  docker search [TERM] 能够搜寻远程旅馆中国共产党享的镜像,暗中认可搜索官方酒馆的镜像。

  docker search参数:

--automated=true|false   :仅显示自动创建的镜像,默认为false
--no-trunc=true|false    :输出信息不截取显示,默认为false
-s , --stars=X          :指定只显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。
-f, --filter filter       Filter output based on conditions provided
--format string           Pretty-print search using a Go template
--help                    Print usage
--limit int               Max number of search results (default 25)
--no-trunc                Don't truncate output

docker有三大亚湾原子核能电站心概念:镜像,容器,货仓

 

1.拿走镜像

docker pull

# 从官方获取ubuntu仓库标记为12.04的镜像
docker pull alpine:3.2

# 从第三方registry.hub.docker.com获取ubuntu仓库标记为12.04的镜像
docker pull registry.hub.docker.com/alpine:3.2

运行docker run -t -i alpine:3.2 /bin/bash开发银行镜像

2、获取镜像

  docker pull NAME[:TAG]

  NAME是镜像仓库的名字,用来不相同镜像,TAG是镜像的竹签,日常用来表示镜像的本子。

  举例:

docker pull centos:latest

  docker pull拉取的镜疑似从暗中同意的登记服务器Docker Hub Registry饭馆拉取的,固然是从其他镜像服务器拉取的话,需求在库房名称前钦命完整的仓库地址。
  例如:docker pull hub.c.163.com/public/ubuntu:14.04

镜像(image)在三大骨干概念中最佳根本,是docker容器运转的前提。每种容器在运营前都亟待有贰个与之相应的镜像。即便镜像没封存在本地,docker会尝试先从镜像酒馆中下载。

ubuntu镜像:

2.列出镜像

docker images,此中ID同样则表示同意镜像

3、查看镜像新闻

镜像与容器的涉嫌,类似于面向对象编制程序中的类与对象,一个类能够实例化多个对象,贰个镜像也足以实例化五个容器。

Arch镜像:

3.制造镜像

1.docker images列出镜像

  docker images命令得以列出当地主机樱笋时部分镜像基本音讯。

[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
ubuntu              14.04               d6ed29ffda6b        10 days ago         221MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]#

获得镜像

镜疑似运转容器的前提,官方的docker store提供了大批量的镜像并吐放下载

下载镜像

docker pull NAME[:TAG]

NAME是镜像客栈的称谓,TAG是镜像的竹签(用于表示版本消息)

示例:

获得三个ubuntu14.04的基本功镜像

docker pull ubuntu:14.04

root@DESKTOP-Q6DMNFI:~# docker pull ubuntu:14.04
14.04: Pulling from library/ubuntu
c954d15f947c: Pull complete
c3688624ef2b: Pull complete
848fe4263b3b: Pull complete
23b4459d3b04: Pull complete
36ab3b56c8f1: Pull complete
Digest: sha256:e1c8bff470c771c6e86d3166607e2c74e6986b05bf339784a9cab70e0e03c7c3
Status: Downloaded newer image for ubuntu:14.04

查阅本地镜像

root@DESKTOP-Q6DMNFI:~# docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
ubuntu                     14.04               dc4491992653        4 days ago          222MB

若果不点名标签,暗许会下载latest(最新版)的镜像。如docker pull ubuntu将下载ubuntu:latest镜像

从刚刚下载的历程中,可看出ubuntu镜像不是用作一个独门的文件,而是由多个层(layer)组成的。

图片 1

docker分层.png

各类层都有二个无比的id, 使用docker pull下载时会获取并出口镜像的各层音讯

支行的补益在于:当不一致的镜像包蕴一样的层时,本地仅存款和储蓄层的一份内容,可节省存款和储蓄空间

下载镜像后,就能够随固然用该镜像,如接纳ubuntu:14.04成立八个容器,并在该容器中实践ping localhost命令

图片 2

启航容器

CentOS镜像:

3.1 修改已有镜像

  • 选取run运营镜像
  • 修改内部内容
  • exit退出
  • docker commit -m "备注" -a "Jasper Xu sorex@163.com" jasperxu/alpine:v2
    运行docker run -t -i jasperxu/alpine:v2 /bin/bash起步镜像

2.docker tag NAME[:TAG] MYNAME[:MYTAG] 给镜像加多本身的竹签

[root@linux-node1 ~]# docker tag ubuntu:latest myubuntu:latest
[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myubuntu            latest              20c44cd7596f        10 days ago         123MB
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
ubuntu              14.04               d6ed29ffda6b        10 days ago         221MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]# 

查看镜像音讯

docker images 列出本土主机阳春有镜像的大旨音讯

图片 3

镜像音信.png

镜像大小消息只是意味着该镜像的逻辑体积大小,实际上由于同一的镜像层本地只会蕴藏一会,物理上据有的蕴藏空间会小于各镜像的逻辑容量之和

Fedora镜像:

3.2 使用Dockerfile创制镜像

3.docker inspect NAME:TAG 命令查看镜像详细音讯

  docker inspect 命令能够获得该镜像的详细消息,富含制笔者、适应架商谈各层的数字摘要等。
  docker inspect ubuntu:latest

运用tag命令加多镜像标签

使用docker tag指令可以给本地镜像任性增加新的竹签,如增添贰个新的myubuntu:test镜像标签

docker tag ubuntu:14.04 myubuntu:test

图片 4

镜像标签.png

加多新标签相当于多了贰个镜像,但新添的镜像id与原镜疑似一致的,实际上指向同一个镜像文件,只是别称分化。因而,docker tag指令增多的竹签实际上起到了靠近链接的职能

Debian镜像:

创建Dickerfile文件

上边便是一个Dockerfile文件示例

# This is a commit
FROM alpine:3.2
MAINTAINER Jasper Xu <sorex@163.com>

RUN apk update &&      apk add socat &&        rm -r /var/cache/

注:详情见02

4.docker history NAME:TAG 命令查看镜像历史

  docker history命令能够查看该镜像各层的始建新闻,查看镜像的始建进度。
  docker history ubuntu:latest

[root@linux-node1 ~]# docker history ubuntu:latest
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
20c44cd7596f        10 days ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           10 days ago         /bin/sh -c mkdir -p /run/systemd && echo '...   7B                  
<missing>           10 days ago         /bin/sh -c sed -i 's/^#s*(deb.*universe...   2.76kB              
<missing>           10 days ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0B                  
<missing>           10 days ago         /bin/sh -c set -xe   && echo '#!/bin/sh' >...   745B                
<missing>           10 days ago         /bin/sh -c #(nop) ADD file:280a445783f309c...   123MB               
[root@linux-node1 ~]#

查看镜像详细音讯

docker inspect命令可取得镜像的详细消息,满含制小编、适应架构、各层的数据摘要等:

docker inspect ubuntu:14.04

回到三个JSON格式新闻,尽管只必要看里面一项的源委,能够用参数举行过滤:

root@DESKTOP-Q6DMNFI:~# docker inspect -f {{".Architecture"}} ubuntu:14.04
amd64

 

应用build来创制镜像

docker build -t jasperxu/alpine:v3 .

  • -t 货仓名称 jasperxu/alpine,jasperxu/alpine:v3,援助三个docker build -t jasperxu/alpine:v3 -t jasperxu/aaa .
  • . Dockerfile文件所在路线(当前目录),假若在上一级目录可接纳./alpine

4、删除镜像

翻看镜像各种层的音讯

镜像文件是由四个层组成,能够动用history翻看种种层的新闻

图片 5

镜像历史

选择新创设的镜像来运营容器

docker run -t -i jasperxu/alpine:v3 /bin/bash

1.施用标签删除镜像

  docker rmi命令能够去除镜像,命令格式为docker rmi IMAGE [IMAGE...],在那之中IMAGE可感到地面镜像的价签或然ID。

[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myubuntu            latest              20c44cd7596f        10 days ago         123MB
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
ubuntu              14.04               d6ed29ffda6b        10 days ago         221MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]# docker rmi myubuntu:latest 
Untagged: myubuntu:latest
[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
ubuntu              14.04               d6ed29ffda6b        10 days ago         221MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]#

寻觅镜像

docker search寻找镜像仓库中的相关镜像

图片 6

搜索镜像

默许的输出结果根据星级评价倒序排列

4.移除镜像

docker rmi xxxxxxxxxxxx
docker rmi jasperxu/alpine
docker rmi jasperxu/alpine:v3

移除镜像前须要移除信任于该镜像的持有容器使用docker rm

2.行使镜像ID删除镜像

  使用docker rmi命令,何况在后头跟上镜头像的ID(也得以是能张开区分的一对ID的前缀)时,会先尝试删除全体指向该镜像的标签,然后删除该镜像文件本身。
  当该镜像创设的容器存在时,该镜像不可能被去除,应当要先甘休并删除容器,才方可扩充删减镜像的操作。

删去镜像

5.导入和导出

3.要挟删除镜像

  docker rmi -f 命令能够强制删除镜像文件,然则在生养中不提出使用。参数-f用来强制删除二个存在容器依赖的镜像。
  提出先甘休该镜像创设的容器事后剔除容器,最终在剔除镜像。

使用标签删除镜像

docker rmi myubuntu:test

当同一个镜像具有七个标签时,以上命令只是删除该镜像七个标签中的钦点标签而已,并不影响镜像文件

但当镜像只剩余多少个标签的时候将在小心了,此时就能够干净去除镜像

5.1保存镜像到当地

docker save jasperxu/alpine:v3 > alpine.tar

5、创设镜像

  创制镜像有二种方法:基于已有镜像的容器成立、基于本地模板导入、基于Dockerfile成立。

运用镜像ID删除镜像

docker rmi dc4491992653

钦命镜像id,会先尝试删除全数指向该镜像的标签,然后再删除镜像文件本人

设若有依附该镜像的容器正在周转,docker会提醒有容器正在运行,不能够删除。此时应先将容器关闭m删除,再删除镜像

5.2导入当和姑件到镜像

docker load < alpine.tar

1.基于已有镜像的器皿创设

  docker commit命令能够完毕基于已有镜像的容器创立镜像,命令格式为docker commit [options] CONTAINER p [REPOSITORY[:TAG]]。
      首要参数如下:

-a,--author=""    作者信息
-c,--change=[]    提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|VOLUME|WORKDIR等。
-m,--missage=""   提交消息
-p,--pause=true   提交时暂停容器运行。

  举个例子如下:

[root@linux-node1 ~]# docker run -it ubuntu:14.04 /bin/bash
root@97cb55d1750b:/# touch test
root@97cb55d1750b:/# echo "123456" > test 
root@97cb55d1750b:/# cat test 
123456
root@97cb55d1750b:/# exit

  该容器的ID为:97cb55d1750b
  此时,这几个容器已经在原先镜像的基本功上发生了扭转,能够用docker commit来交付二个新的镜像

[root@linux-node1 ~]# docker commit -m "add a file named test" -a "StaryJie" 97cb55d1750b test:0.1
sha256:d751da3f994342576516f5d7d2b56df62172299eddd940fbbc368d03508f58e2
[root@linux-node1 ~]# 
[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                0.1                 d751da3f9943        24 seconds ago      221MB
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
ubuntu              14.04               d6ed29ffda6b        10 days ago         221MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]# 

开创镜像

创办镜像有二种方法:

  • 基于已有镜像的器皿创立

  • 依据本地模板导入

  • 基于Dockfile创建

6.其他

2.基于地点模板导入镜像

  利用docker import命令能够依照本地模板导入镜像,命令格式为:docker import [options] file|url| -[REPOSITORY[:TAG]]

[root@linux-node1 ~]# cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
sha256:4c8b886ac4ef6a93d5324e7d7eb33b80cc89939ebb49b147a123e5d2ca5ef2aa
[root@linux-node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               4c8b886ac4ef        5 seconds ago       230MB
test                0.1                 d751da3f9943        9 minutes ago       221MB
ubuntu              16.04               20c44cd7596f        10 days ago         123MB
ubuntu              latest              20c44cd7596f        10 days ago         123MB
centos              latest              d123f4e55e12        3 weeks ago         197MB
[root@linux-node1 ~]#

据书上说已有镜像的容器创设

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

分选表达:

  • -a, --author="": 我新闻

  • -c, --change=[]: 提交时实践Dockerfile指令

  • -m, --message="": 提交消息

  • -p, --pause=true: 提交时停顿容器运营

接下去演示:创设一个容器,新添一个test文件,再将以此容器提交生成为一个新的镜像

root@DESKTOP-Q6DMNFI:~# docker run -it ubuntu:14.04 /bin/bash
root@074a066035a2:/# touch test
root@074a066035a2:/# exit
exit
root@DESKTOP-Q6DMNFI:~# docker commit -m "新增一个test文件" -a "靴子猫" 074a066035a2 test:0.1
sha256:3c23db7d1eb6ed4ce98b06c426b1f0179077cf69ec5d63e423cdd7cb01553f7b

图片 7

容器ID

查阅新创制的镜像:

root@DESKTOP-Q6DMNFI:~# docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
test                       0.1                 3c23db7d1eb6        6 minutes ago       222MB

6.1修改镜像标签

docker tag xxxxxxxxxxxx jasperxu/alpine:devel

3.基于Dockerfile创立镜像

  请参考《使用Dockerfile创设镜像》。

 

据书上说本地模板导入

要平昔导入叁个镜像,能够从OpenVZ下载,然后用docker import导入

假使下载了ubuntu-14.04-x86-minimal.tar.gz压缩包,那么可用以下命令导入:

cat ubuntu-14.04-x86-minimal.tar.gz | docker import - ubuntu:14.04

6.2上传镜像

docker push jasperxu/alpine

6、存出和载入镜像

导出和载入镜像

使用docker savedocker load命令导出和载入镜像

1.存出镜像

  docker save命令能够导出镜像到地头文件,如下:

[root@linux-node1 ~]# docker save -o ubuntu-14.04-x86_64-minimal.tar.gz ubuntu:14.04
[root@linux-node1 ~]# ll
total 224808
-rw-------. 1 root root      1071 Jan 19  2017 anaconda-ks.cfg
-rw-------  1 root root 230199296 Nov 28 14:40 ubuntu-14.04-x86_64-minimal.tar.gz

导出镜像

ubuntu:14.04镜像导出为ubuntu_14.04.tar文件

root@DESKTOP-Q6DMNFI:~# docker save -o ubuntu_14.04.tar ubuntu:14.04
root@DESKTOP-Q6DMNFI:~# ls
ubuntu_14.04.tar

导出镜疑似贰个很有用的机能,能够视作本地备份,也足以分发给其余人使用

2.载入镜像

  利用docker load将导出的tar镜像导入到本地饭馆

[root@linux-node1 ~]# docker load --input ubuntu-14.04-x86_64-minimal.tar.gz
Loaded image: ubuntu:14.04
[root@linux-node1 ~]#

载入镜像

将导出的镜像再度导入:

root@DESKTOP-Q6DMNFI:~# docker load --input ubuntu_14.04.tar
Loaded image: ubuntu:14.04

7、上传镜像

  使用docker push命令上传镜像到库房,私下认可上传来Docker Hub官方旅馆(供给报到)。命令格式为:docker push NAME:[TAG] | [REPOSITORY_HOST[:REPOSITORY_PORT]/]NAME[:TAG]
  上传镜像到Docker Hub之前须要经过docker tag命令将镜像命名称为username/ubuntu:14.04这种格式,username为你自身在Docker Hub注册之后的客户名。
  docker push staryjie/ubuntu:14.04

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:docker镜像操作,镜像操作

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。