【Docker】第二篇 Docker镜像管理
一、搜索镜像
1、下载一个docker镜像:我们可以通过登陆docker网站搜索自己需要的镜像,可以选择自己所需要的版本,然后通过详情也可以看到:
网址:https://hub.docker.com/
2、我们也可以通过命令行搜索:
[root@web130 ~]# docker search centos: #如果不带版本号默认搜到是最新版本的:latest
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. [OK]
ansible/centos7-ansible Ansible on Centos7 [OK]
*我们看输出内容可以很容易的理解,分别是:名称,描述,星(类似github上的stars),是否官方镜像,是否自动装配。
*如下搜索自动创建,以及指定星级的镜像,星级默认为0,如果加--no-trunc输出信息不截断显示,默认是否--no-trunc=true|fales
[root@web130 ~]# docker search --automated -s nginx
Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars= instead
NAME DESCRIPTION
.....省略显示 ...
二、查看和获取镜像
、images列出镜像:关于images更多信息可以通过man docker-images来查看
*此内容下显示:来自那个仓库、标签信息、镜像ID、创建时间、镜像大小
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE 、下载一个镜像,如果后边不跟版本号,默认是最新非稳定版本:
[root@web130 ~]# docker pull ubuntu #下载镜像 *也可以通过上边搜索选择合适的版本号,如下:
[root@web130 ~]# docker pull ubuntu:14.04
[root@web130 ~]# docker pull centos:7.4.
[root@web130 ~]# docker images #查看下载的镜像,可以看到刚刚下载的是三个镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]#
*我们也可以跟上仓库地址下在,非官网镜像源仓库下载指定镜像:
[root@web130 ~]# docker pull 仓库地址/ubuntu:14.04 、利用该镜像创建一个容器:
[root@web130 ~]# docker run -it centos:7.4. /bin/bash #后边详细说明参数,如果本地没有下载此镜像,自动先下载镜像并运行
*如下由于没有指定标签,自动下载了最新版本的centos,并打开了一个shell:
[root@web130 ~]# docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
256b176beaff: Pull complete
Digest: sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf
Status: Downloaded newer image for centos:latest
[root@3e876fdaaf89 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@3e876fdaaf89 /]# 、使用tag命令为镜像添加标签
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
[root@web130 ~]# docker tag centos:latest mycentos:latest #我们可以看到多出来一个镜像,tag的作用类似与添加链接的作用,他们指向同一个源镜像文件、
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
mycentos latest 5182e96772bf weeks ago 200MB 、使用inspect命令查看详细信息:
[root@web130 ~]# docker inspect mycentos
[root@web130 ~]# 、使用history命令查看镜像历史
[root@web130 ~]# docker history mycentos #镜像使用多层组成,列出各层的创建信息,--no-trunc选项输出完整的命令
IMAGE CREATED CREATED BY SIZE COMMENT
5182e96772bf weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> weeks ago /bin/sh -c #(nop) ADD file:6340c690b08865d7e… 200MB
[root@web130 ~]#
三、删除镜像
、通过标签删除镜像
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
mycentos latest 5182e96772bf weeks ago 200MB
[root@web130 ~]# docker rmi mycentos:latest
Untagged: mycentos:latest
[root@web130 ~]# docker images 删除。
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
#我们可以看到mycentos标签已经被删除,我们可以看到源镜像centos依然存在,所以删除标签不影响镜像文件,但是仅剩一个标签的时候要小心,会将镜像文件 、通过镜像ID删除镜像 [root@web130 ~]# docker rmi centos:latest
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container 3e876fdaaf89 is using its referenced image 5182e96772bf
[root@web130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e876fdaaf89 centos "/bin/bash" minutes ago Exited () minutes ago friendly_haibt
[root@web130 ~]#
#显示无法删除,因为有一个基于它的容器存在,我们也可以强制删除 -f:docker rmi -f centos,但是不建议这样删除,所有我们如下操作先删除依赖的容器
[root@web130 ~]# docker rm 3e876fdaaf89 #通过容器id删除镜像
3e876fdaaf89
[root@web130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@web130 ~]# docker rmi centos:latest #可以看到它删除了这个镜像文件的所有层
Untagged: centos:latest
Untagged: centos@sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf
Deleted: sha256:5182e96772bf11f4b912658e265dfe0db8bd314475443b6434ea708784192892
Deleted: sha256:1d31b5806ba40b5f67bde96f18a181668348934a44c9253b420d5f04cfb4e37a
[root@web130 ~]#
四、创建镜像
创建镜像的方法:
*基于已有的镜像容器创建
*基于本地模板导入
*基于Dockerfile创建 (后文重点学习Dockerfile)
、基于已有镜像的容器创建
[root@web130 ~]# docker run -it ubuntu:14.04 /bin/bash
root@5b117c5dffe1:/# touch yanglt
root@5b117c5dffe1:/# exit
exit
[root@web130 ~]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]# docker commit -m "a new file" -a "Yanglt" 5b117c5dffe1 test:0.1
sha256:40925d6bc8025b8ca6ec68249f4cb371844896a39817f9e9bf80eda4119e8d6f
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 seconds ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
#可以看到一个新的镜像test
、基于本地模板导入创建
下载地址:https://download.openvz.org/template/precreated/
选择要下载镜像模板:
[root@web130 ~]# wget https://download.openvz.org/template/precreated/centos-7-x86_64-minimal.tar.gz
[root@web130 ~]# cat centos--x86_64-minimal.tar.gz |docker import - centos:
[root@web130 ~]# cat centos--x86_64-minimal.tar.gz |docker import - centos:
sha256:3458fe08f84de52d5354a80793e5f806420a2330fc2c2425bb4878bcb8b0efd8
[root@web130 ~]# docker images #可以看到已经出现新的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 3458fe08f84d seconds ago 435MB
test 0.1 40925d6bc802 About an hour ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]#
五、导出和载入镜像
、导出镜像
-o + 要导出最后的文件名 + 要导出的镜像的标签(名) 或id
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]#
[root@localhost ~]# docker save -o myubuntu_14..tar ubuntu:14.04
[root@localhost ~]# ll |grep my*
-rw------- root root 9月 : myubuntu_14..tar
[root@localhost ~]# 、导入镜像(恢复原有镜像)
*我们可以将导出的源镜像删除,然后在导入
[root@localhost ~]# docker rmi ubuntu:14.04
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]# docker load < myubuntu_14..tar
Loaded image: ubuntu:14.04
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]#
六、上传镜像
#我们可以把自己的镜像传到dockerhub官网上,前提是注册一个用户
[root@localhost ~]# docker push image_name
【Docker】第二篇 Docker镜像管理的更多相关文章
- docker第二篇 Docker基础用法
Docker中的容器 lxc -> libcontainer -> runC OCI (Open Container Initiative) 由Linux基金会主导于2015年6月创立 作 ...
- Docker笔记6:Docker 常见命令及镜像管理
目 录 一.Docker 常用命令 docker version 命令 docker info 命令 二.Docker 镜像管理 搜索镜像:docker search 镜像名 获取镜像:docker ...
- 一张图比較 Docker 和 Git:镜像管理设计理念
Docker 的镜像管理设计中大量借鉴了 Git 的理念. 以下这张图将对两者的核心概念和操作进行比較,有助于大家高速掌握管理 Docker 镜像的正确方式. watermark/2/text/aHR ...
- [第二篇]——Docker 架构之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统.比如官方镜像 ubuntu:16.04 就包含了完整的一 ...
- Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离
Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...
- docker之私有仓库镜像管理
一.查看本地镜像 二.给镜像打标记(tag ) [root@node03 ~]# docker tag wordpress:v1 192.168.1.197:5000/wordpress:v1 2.删 ...
- nginx之旅(第二篇):nginx日志管理、nginx防盗链、nginx虚拟主机
一.nginx日志管理 Nginx访问日志主要有两个参数控制 1) log_format #用来定义记录日志的格式(可以定义多种日志格式,取不不同名字即可) log_format log_name s ...
- Docker入门篇(一)之docker基础
1.Docker 架构 http://blog.csdn.net/u012562943/article/category/6048991/1Docker 使用客户端-服务器 (C/S) 架构模式,使用 ...
- Docker教程:docker远程repository和自建本地registry
http://blog.csdn.net/pipisorry/article/details/50814307 Docker有一个类似版本管理仓库(Repositry)的东西,有docker.io提供 ...
随机推荐
- linux用户相关及/etc/passed,/etc/group,/etc/shadow
useradd:新建用户 usermod:修改用户相关信息 userdel:删除用户分(-r选项) 组的操作与用户的操作类似 选项 userdel相关选项: -f:强制删除用户,即使用户已登录 -r: ...
- OOP——构造函数、析构函数
我们在创建和销毁对象时需要执行一些任务.例如,在创建对象时给属性赋值,在对象销毁时关闭数据连接等,这时就需要构造函数和析构函数. 在PHP中构造函数和析构函数是固定的,如下: // 构造函数 func ...
- Install Weblogic12C
1. 安装JDK软件 1.1)jdk版本选择 由于jdk编译出class文件是一个二进制文件,其中前四个字节是magic位,第五到第六个字节对应于minor和major.class文件的minor和m ...
- openstack常用的一些命令
查看rabbitmq 队列 rabbitmqctl list_queues 复制代码 查看keystone的用户 keystone user-list 复制代码 查看keystone endpoint ...
- css自问自答(二)
css自问自答(二) 7.掌握定位的一些属性 position 和 display 属性,以及如何浮动(float)和清除(clear)元素,z-index属性 三个属性控制: position 属性 ...
- css自问自答(一)
css自问自答(一) 1.块级元素和行内元素特性与区别? 块级:display:block <div>.<p>.<h1>...<h6>.<ol&g ...
- 红米5/红米5 Plus逼出最强魅蓝Note6?降价后已成性价比神机
从品牌到产品命名,小米旗下的红米与魅族旗下的魅蓝似乎是一对天生的对手,如今小米即将发布千元全面屏的红米5/红米5 Plus,暂时没有全面屏手机推出的魅蓝也拿出了自己的应对策略,魅蓝的办法简单粗暴:直接 ...
- 基于VUE.JS的移动端框架Mint UI
Mint UI GitHub:github.com/ElemeFE/mint 项目主页:mint-ui.github.io/# Demo:elemefe.github.io/mint- 文档:mint ...
- c模拟 页式管理页面置换算法之FIFO
写的操作系统作业.... 放上来给需要的小伙伴 需要注意的地方: 1.该算法只涉及单进程 2.只是用c模拟FIFO的思想 FIFO思想:选择在内存中存活时间最久的页面淘汰 关于该算法我的理解: 一个进 ...
- block本质探寻一之内存结构
一.代码——命令行模式 //main.m #import <Foundation/Foundation.h> struct __block_impl { void *isa; int Fl ...