docker是什么?
Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。
比如,你在本地用Python开发网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。
三大组件是什么?
镜像(image):
docker的镜像是创建容器的基础。是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
容器(container):
docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。
仓库(repository):
仓库注册服务器上往往存放着多个仓库,每个仓库中包含了多个镜像,每个镜像有不同标签。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
镜像和容器之间的关系是什么?
刚接触时,经常对这两个概念感到模糊... 百度找到一篇文章所以记录下来,方便后续查看。
原文链接:https://carroll.blog.youkuaiyun.com/article/details/102827125
简单来说,镜像是文件,容器是进程。容器就是运行的镜像。
容器是由镜像实例化而来。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。
docker镜像包含运行容器所需的环境,镜像运行起来就是容器。一个镜像内可以有多个容器,容器之间都是相互隔离的,互不影响。容器可以被启动、停止和删除。
容器服务运行的过程中,基于原始镜像做了改变,比如安装了程序,添加了文件,也可以提交回去 (commit)成为镜像。
docker提供了一个很简单的机制来创建镜像或更新现有的镜像。用户甚至可以从其他人那里下载一个已经做好的镜像直接使用。(镜像是只读的,可以理解为静态文件)
docker仓库怎么理解?
docker仓库和git仓库很类似。
分为public公共仓库和private私有仓库。最大的公开仓库是 Docker Hub:https://hub.docker.com,存放了数量庞大的镜像供用户下载。
每个仓库中包含了多个镜像,每个镜像都可以设置不同的tag标签。用法也和git类似,可以将自己的镜像上传到docker仓库,也可以从docker仓库下载其他的镜像使用。
什么是Docker的数据卷-Volumes
数据卷是一个供容器使用的特殊目录,位于容器中。
可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。
如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息
以上就是对docker概念做个记录,以免忘记。