Docker 系列四: docker 镜像的使用

                                            Docker 镜像的使用

 

常用命令:

1.镜像的获取

docker pull   [name]:tag ,不指定 tag 时默认为镜像的latest版本。

如果时从非官方的仓库获取,则需要指定完成的仓库地址:

docker pull hub.c.163.com/public/ubuntu:11.04

有时候需要使用镜像代理服务来加速docker 镜像的获取,可以在docker 服务启动配置中增加:  --registry-mirror=proxy_URL 来指定镜像代理服务地址

 

镜像的运行:

docker run  -it  [name]:tag  bash

 

2. 镜像信息的查看:

docker  images    /  docker image ls

images 子命令参数:

  -a, --all=true | false,列出所有镜像文件,默认为否

  -digests=true | false: 列出镜像的数字摘要值,默认为 否

  -f, --filter=[],过滤列出的镜像

  --format="TEMPLATE",控制输出格式, 如 .ID代表ID信息,.Repository代表仓库信息等。

  --no-trunc=true| false,对输出结果中太长的部分是否镜像截断,默认为时。

  -q,--quiet=true | false,仅输出ID信息,默认为 否。

使用tag命令添加镜像标签:

可以使用docker tag  命令为本地镜像任意添加新的标签,列如,给ubuntu添加一个新的标签: myubuntu:latest

docker tag ubuntu:latest myubuntu:latest

查看镜像的详细信息:

docker  inspect  [name]:tag

   上边的命令返回一个JSON格式的消息,如果我们只要其中一项内容时,可以使用 -f来指定,例如获取镜像的 Architecture

      docker  inspect  -f  {{“.Architecture”}}    [name]:tag

 

3.镜像的搜索

docker search [option]   keyword

   option:   -f , --filter   过滤

                  --limit 限制输出结果

                  --no-trunc: 不截断输出结果

 

4.镜像的删除和清理

删除:   docker image rm xxx  /  docker rmi xx

       [option]:   -f, -force: 强制删除

                      -no-prune: 不要清理未带标签的镜像

 

通常并不推荐使用 -f 来删除一个存在容器依赖的镜像,正确的做法是删除依赖该镜像的所有容器,再删除该镜像

删除容器:  docker rm xxxx

 

清理:  docker image prune

           [option] :  -a, -all: 删除所有无用的镜像,不广是临时镜像

                           -filter: 只清理符合指定过滤器的镜像

                           -f, -force: 强制删除镜像,不再镜像确认提示

 

 

 

5.镜像的创建

三种创建方式:  基于已有容器的创建 / 基于本地模板导入 / 基于 Dockerfile 创建

基于已有容器的创建: 

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

   OPTIONS说明:

  • -a :提交的镜像作者;

     

  • -c :使用Dockerfile指令来创建镜像;

     

  • -m :提交时的说明文字;

     

  • -p :在commit时,将容器暂停。

   ex:

  将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mymysql             v1                  37af1236adef        15 seconds ago      329 MB

 

基于本地模板的导入:

  从归档文件中创建镜像:

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

  

     OPTIONS说明:

  • -c :应用docker 指令创建镜像;

     

  • -m :提交时的说明文字;

    ex:

   

 从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4

runoob@runoob:~$ docker import  my_ubuntu_v3.tar runoob/ubuntu:v4  
sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39
runoob@runoob:~$ docker images runoob/ubuntu:v4
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
runoob/ubuntu       v4                  63ce4a6d6bc3        20 seconds ago      142.1 MB

  

基于Dockerfile 的创建:

   基于dockerfile 是常见的方式。dockerfile 是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。

 docker build [OPTIONS] PATH | URL | -

   OPTIONS说明:

  • --build-arg=[] :设置镜像创建时的变量;

  • --cpu-shares :设置 cpu 使用权重;

  • --cpu-period :限制 CPU CFS周期;

  • --cpu-quota :限制 CPU CFS配额;

  • --cpuset-cpus :指定使用的CPU id;

  • --cpuset-mems :指定使用的内存 id;

  • --disable-content-trust :忽略校验,默认开启;

  • -f :指定要使用的Dockerfile路径;

  • --force-rm :设置镜像过程中删除中间容器;

  • --isolation :使用容器隔离技术;

  • --label=[] :设置镜像使用的元数据;

  • -m :设置内存最大值;

  • --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

  • --no-cache :创建镜像的过程不使用缓存;

  • --pull :尝试去更新镜像的新版本;

  • --quiet, -q :安静模式,成功后只输出镜像 ID;

  • --rm :设置镜像成功后删除中间容器;

  • --shm-size :设置/dev/shm的大小,默认值是64M;

  • --ulimit :Ulimit配置。

  • --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  • --network: 默认 default。在构建期间设置RUN指令的网络模式

6. 镜像的导入和导出

 

   Docker save : 将指定镜像保存成 tar 归档文件。

 docker save [OPTIONS] IMAGE [IMAGE...]

    OPTIONS 说明:

  • -o :输出到的文件。

   ex:

   

 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档

runoob@runoob:~$ docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
runoob@runoob:~$ ll my_ubuntu_v3.tar
-rw------- 1 runoob runoob 142102016 Jul 11 01:37 my_ubuntu_v3.ta

Docker load : 导入使用 docker save 命令导出的镜像。

 

docker load [OPTIONS]

  OPTIONS 说明:

  • --input , -i : 指定导入的文件,代替 STDIN。

     

  • --quiet , -q : 精简输出信息

  ex:

     

导入镜像:

$ docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

$ docker load < busybox.tar.gz

Loaded image: busybox:latest
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              769b9341d937        7 weeks ago         2.489 MB

$ docker load --input fedora.tar

Loaded image: fedora:rawhide

Loaded image: fedora:20

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              769b9341d937        7 weeks ago         2.489 MB
fedora              rawhide             0d20aec6529d        7 weeks ago         387 MB
fedora              20                  58394af37342        7 weeks ago         385.5 MB
fedora              heisenbug           58394af37342        7 weeks ago         385.5 MB
fedora              latest              58394af37342        7 weeks ago         385.5 MB

 

 

7.上传镜像

 

Docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker push [OPTIONS] NAME[:TAG]

 

 OPTIONS说明:

  • --disable-content-trust :忽略镜像的校验,默认开启

 

上传本地镜像myapache:v1到镜像仓库中。

docker push myapache:v1

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值