容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的ip地址,主机名等。
也可以说:容器是一种轻量级虚拟化的技术。
Docker是通过内核虚拟化技术(namespaces及cgroups)来提供容器的资源隔离与资源限制。 由于Docker通过操作系统层的虚拟化实现隔离(对操作系统的内核有要求),所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而比kvm虚拟机更轻量。
docker是一种软件的打包技术。
docker的主要目标是"Build,Ship and Run any App,Angwhere",构建,运输,然后处处运行
只要能运行docker容器,那么docker镜像中已经安装好的软件也可以运行,所以说docker是一种软件的打包技术。
docker是一个cs架构:通过docker version来查看
docker最重要的三大组件:镜像,容器,仓库
标准镜像名由四部分组成:
仓库地址/项目名/镜像名:标签
,如 daocloud.io/library/nginx:latest
docker官方仓库的官方镜像可省略仓库地址和项目名,即:镜像名:标签
docker官方仓库的第三方镜像可省略仓库地址,即:项目名/镜像名:标签
第三方仓库的镜像必须包含所有信息,即:仓库地址/项目名/镜像名:标签
同一个镜像可以有多个便签,一个标签也可以对应多个镜像
标签常用来区分版本号,如centos:7
,centos:7.4
,centos:latest
如果未指明使用哪个标签,将使用默认的标签latest
docker镜像是分层存储的,最上面一层为可写层,下面所有层都是只读层,这要做的好处是:
从 Docker 1.10 版本开始,docker daemon 实现了一个内嵌的 DNS server,使容器可以直接通过“容器名”通信。方法很简单,只要在启动时用 --name
为容器命名就可以了。
使用 docker DNS 有个限制:只能在 user-defined 网络中使用。也就是说,默认的 bridge 网络是无法使用 DNS 的。下面验证一下:
docker network create --driver bridge noah_net
bbox4 无法 ping 到 bbox3。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。