设为首页 收藏本站
查看: 1587|回复: 0

[经验分享] Docker系列之镜像

[复制链接]

尚未签到

发表于 2019-2-20 07:28:42 | 显示全部楼层 |阅读模式
  一、镜像是什么
  Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统。
  镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。
  二、镜像和容器的联系
  容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,会先从镜像里面把要写的文件复制到容器自己的文件系统中(读写层)。
  如果容器删除了,最上的读写层也就删除了,改动也就丢失了。所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会修改镜像的源文件,这种方式提高磁盘利用率。
  如果想持久化这些改动,可以通过docker commit 将容器保存成一个新镜像。不太推荐。
  三、管理镜像常用命令
ls              列出镜像
[root@localhost docker]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        3 weeks ago         1.84kB
nginx            latest              7042885a156a        3 weeks ago         109MB
[root@localhost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        3 weeks ago         1.84kB
nginx            latest              7042885a156a        3 weeks ago         109MB  build        构建镜像来自Dockerfile
  history     查看镜像历史
inspect    显示一个或多个镜像详细信息

[root@localhost docker]# docker image inspect nginx
[
    {
        "Id": "sha256:7042885a156a01cc99e5a531f41ff47ea2facf655d4fc605aa80b216489586a4",
        "RepoTags": [
            "nginx:latest"
        ],
        "RepoDigests": [
            "nginx@sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2018-12-29T03:31:31.255529383Z",
        "Container": "6d43036a59e9e40ae167cde76a9ce35627ff4f4f224403ae6b0d73a2dfdfe90a",
        "ContainerConfig": {
            "Hostname": "6d43036a59e9",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,  pull          从镜像仓库拉取镜像
[root@localhost docker]# docker pull nginx:1.14
1.14: Pulling from library/nginx
177e7ef0df69: Already exists
132d4353ecd5: Pull complete
9482632c8a8f: Pull complete
Digest: sha256:98f78a1dde1ba9c9fbb10671b14a74fcff97f0cc85c182e217618397fcaf63fa
Status: Downloaded newer image for nginx:1.14  push     推送一个镜像到镜像仓库
rm     移除一个或多个镜像

[root@localhost docker]# docker image rm nginx:1.14
Untagged: nginx:1.14
Untagged: nginx@sha256:98f78a1dde1ba9c9fbb10671b14a74fcff97f0cc85c182e217618397fcaf63fa
Deleted: sha256:3f55d5bb33f3ae6e7f232c82f3bc09f2aa8029d9d213bf69324c95ac1cb9d7ae
Deleted: sha256:d178dd6080618d71e1b85319821b265d20c422511f59f58f4ad84d6341a497a2
Deleted: sha256:2784880ce5781d29eed1af54c19774de0f6fabd3d63db6e0bd2103d4febedbc0  prune     移除未使用的镜像。没有被标记或被任何容器引用的。
[root@localhost docker]# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B  tag     创建一个引用源镜像标记目标镜像
export     导出容器文件系统到tar归档文件
import     导入容器文件系统tar归档文件创建镜像
save     保存一个或多个镜像到一个tar归档文件

[root@localhost docker]# docker image save nginx1 -o nginx.tar
[root@localhost docker]# ll
总用量 110268
-rw-r--r-- 1 root root        67 1月  22 15:06 daemon.json
-rw------- 1 root root       244 1月  22 12:02 key.json
-rw------- 1 root root 112903680 1月  22 16:31 nginx.tar  load 加载镜像来自tar归档或标准输入
[root@localhost docker]# docker image load -i nginx.tar
7b4e562e58dc: Loading layer [==================================================>]  58.44MB/58.44MB
c9c2a3696080: Loading layer [==================================================>]  54.44MB/54.44MB
b7efe781401d: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image: nginx1:latest



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674579-1-1.html 上篇帖子: Docker系列之镜像加速 下篇帖子: 修改docker默认网桥
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表