整容说文库 > 程序代码 > 教育资讯

Docker的images和container啥关系

来源:学生作业帮助网 编辑:整容说文库 时间:2020/10/24 05:29:03 程序代码
Docker的images和container啥关系程序代码
我看过一些文章,还是有一些疑问
Docker images
A Docker image is a read-only template. For example, an image could contain an Ubuntu operating system with Apache 

and your web application installed. Images are used to create Docker containers. Docker provides a simple way to 

build new images or update existing images, or you can download Docker images that other people have already 

created. Docker images are the build component of Docker.
Docker Registries
Docker registries hold images. These are public or private stores from which you upload or download images. The 

public Docker registry is called Docker Hub. It provides a huge collection of existing images for your use. These 

can be images you create yourself or you can use images that others have previously created. Docker registries are 

the distribution component of Docker.
Docker containers
Docker containers are similar to a directory. A Docker container holds everything that is needed for an application 

to run. Each container is created from a Docker image. Docker containers can be run, started, stopped, moved, and 

deleted. Each container is an isolated and secure application platform. Docker containers are the run component of 

Docker.
images安装了我的app,但是它是readonly的,那我要update app是怎么做的?
container 相当于一个我app的dependency,而container 又是通过image创建的,这些是啥关系?
对这些概览比较模糊,希望大侠能够帮助讲解一下


该问题来自CSDN Docker技术交流群(303806405),由版主xinshubiao整理。
B:  你可以用docker commit命令 来生成一个新的image

M:  Docker 相当于给你的应用做个壳子,可以塞到任何的服务器上。就像现在装机时候那个硬盘卡子,套好往里面一塞,插好线就可以了。

A:  那就是说我部署到生产环境还需要安装docker这个壳子?
而且 每次我有新功能上线,我是重新更新整个壳子,还是更新壳子的某一部分?
这个和我自己把app打包有什么区别(我猜测区别就是docker里面包含了一些依赖)?
或者是说从头开始开发,测试,部署,bug fix,更新上线。。。,这样的一篇文章我相信帮助肯定很大


该解答来自CSDN Docker技术交流群(303806405),由版主xinshubiao整理,由于手工编辑,提问者和回答者的QQ号和昵称没有一一注明,只简单用ABCD代替提问或回复, A代表提问者。 在此,先对群里参加讨论的同学表示感谢。
初学docker, 感觉可以和版本控制工具对比理解:
image 对应 repository
container 对应 working copy
commit 对应 commit
可能作者就是按照版本控制的思路设计的吧.
image 对应 changeset 或 某个版本号 可能更准确.
docker中的container与image的关系和数据库中的数据库和实例,还有类与实例的关系差不多,你可以认为image只是一个IOS文件,而container就是在根据image创建出来的在内存中运行的一个具体的实例。
Image可以理解为一个系统镜像,Container是Image在运行时的一个状态。
如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。
可以参考这篇文章:http://pdfwork.cn/blog/2015/docker/
顶楼上,简洁明了的回答。
Image 是系统一般来源是官方资源,或者比较稳定成熟的资源
Container 是启动系统后的运行时环境, 包括磁盘 + 运行的其他软件 + 环境配置
他们之间可以互相转换
可以看下这篇文章
http://aotu.io/notes/2016/02/27/docker/
container 相当于一个我app的dependency   这句话是错的, container 是进程, image是镜像, 一个是存储态一个是运行态的东西。 
image 每层是只读的, 只有最上面一层是可写的, 每次修改都在最上面这层修改。 
container  来自lxc,

images来自操作系统.

程序代码