Docker基础-镜像操作
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
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
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 ~]#
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 ~]#
3.docker inspect NAME:TAG 命令查看镜像详细信息
docker inspect 命令可以获取该镜像的详细信息,包括制作者、适应架构和各层的数字摘要等。
docker inspect ubuntu:latest
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 ~]#
4、删除镜像
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 ~]#
2.使用镜像ID删除镜像
使用docker rmi命令,并且在后面跟上镜像的ID(也可以是能进行区分的部分ID的前缀)时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。
当该镜像创建的容器存在时,该镜像无法被删除,必须要先停止并删除容器,才可以进行删除镜像的操作。
3.强制删除镜像
docker rmi -f 命令可以强制删除镜像文件,但是在生产中不建议使用。参数-f用来强制删除一个存在容器依赖的镜像。
建议先停止该镜像创建的容器之后删除容器,最后在删除镜像。
5、创建镜像
创建镜像有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
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 ~]#
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 ~]#
3.基于Dockerfile创建镜像
6、存出和载入镜像
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
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 ~]#
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
Docker基础-镜像操作的更多相关文章
- Docker.[3].镜像操作.
Docker.[3].镜像操作. 熟悉基础指令: 查看本地镜像 docker images 查看本地镜像 docker image list (和上面显示的结果一样.) 删除本地镜像 docker r ...
- 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署
庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介 我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...
- 中标麒麟龙芯平台--docker基础镜像制作
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 的出现为开发人员和运维人员带来了极大的便利.Docker在X86下常见的发行版Linux如Ub ...
- linux 创建docker基础镜像
通过Dockerfile创建镜像时,一般都是基于 Docker Hub 提供的官方镜像.以下分别介绍在ubuntu16和centos7 两个系统上创建个人私有基础镜像的方法. 一.ubuntu16创 ...
- Docker 基础 : 镜像
目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...
- 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作
本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...
- Docker:镜像操作和容器操作
镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...
- 尝试自己建立以alpine 为基础的docker基础镜像和组件镜像
安装ubuntu14.04 然后 #获取root权限 sudo su #安装docker apt-get install docker #准备基础镜像 docker pull alpine docke ...
- 从零开始构建docker基础镜像
段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...
随机推荐
- (原创)用c++11打造好用的any
上一篇博文用c++11实现了variant,有童鞋说何不把any也实现一把,我正有此意,它的兄弟variant已经实现了,any也顺便打包实现了吧.其实boost.any已经挺好了,就是转换异常时,看 ...
- Android-Kotlin-抽象类与多态的表现
选择包名,然后右键: 选择Class类型,会有class: 选择File类型,不会自动有class: 目录结构: 定义描述抽象类 Person人类: package cn.kotlin.kotlin ...
- C#基础——C#中问号的使用
1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空. 例如:string str=null; 是正确的,int i=null; 编译器就会报错. 为了使值 ...
- 那些好用的阅读软件(Windows & Android)
此文章已添加预览与更新,请您移步到我的新博客 http://t.cn/EXCiCTE 整个2018年就没写过几篇博文,所以写一篇文章算过年啦-哈哈-有部分软件因为年代原因,官网已经消失.或者网络上的资 ...
- Git清空历史,清空历史删除的文件,降低.git 文件大小
执行以下步骤之前 请做好源码备份 本操作用来清理github上面的历史删除文件,减少库的体积. 第一步骤 下载JDK环境和JAR包 https://rtyley.github.io/bfg-repo- ...
- Tree with Small Distances(cf1029E)(树形动规)
You are given an undirected tree consisting of \(n\) vertices. An undirected tree is a connected und ...
- underscore.js源码研究(1)
概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...
- Linux的基本操作
1.linux系统的基本命令 ls 查看当前所在文夹下的内容pwd 查看当前所在的位置cd 打开文件目录touch 创建文件, 如果文件不存在, 就创建新的文件mkdir 创建文件夹rm 删 ...
- Vue2.5开发去哪儿网App 城市列表开发之 兄弟组件间联动及列表性能优化
一, 兄弟组件间联动 1. 点击城市字母,左侧对应显示 给遍历的 字母 添加一个点击事件: Alphabet.vue @click="handleLetterClick" ha ...
- JSONP是什么
摘自:https://segmentfault.com/a/1190000007935557 一.JSONP的诞生 首先,因为ajax无法跨域,然后开发者就有所思考 其次,开发者发现, <scr ...