Docker 的安装
Docker
的安装非常的简单和快捷,当前Docker已支持大多数Linux发行版,包括:Ubuntu
、Red Hat
、CentOS
、SUSE
、Fedora
、Debian
等,也可以在AWS、Aliyun等云平台安装。Docker
基于LXC
实现容器相关功能,要在Mac OS X
或Windows
中运行Docker
就需要借助Docker Toolbox
等工具模拟一个Docker
虚拟环境。
Docker
的安装非常的简单和快捷,当前Docker已支持大多数Linux发行版,包括:Ubuntu
、Red Hat
、CentOS
、SUSE
、Fedora
、Debian
等,也可以在AWS、Aliyun等云平台安装。Docker
基于LXC
实现容器相关功能,要在Mac OS X
或Windows
中运行Docker
就需要借助Docker Toolbox
等工具模拟一个Docker
虚拟环境。
容器
(Container)是Docker
的核心组件之一,它是用于运行镜像
的一个沙箱环境,是一个从镜像
创建的应用运行实例,镜像
打包、构建完成后最终都会运行于容器
中。容器
具有良好的隔离性,容器
之间是相互隔离、互不可见。本文将介绍Docker
容器的创建与管理,并以容器的生命周期为主线介绍容器的创建、管理、停止,到最终删除。
镜像(Image)是构建容器的基础,镜像是一种分层结构的文件系统。我们可以从仓库(Repository)中下载镜像,而仓库又保存在Registry
中,Docker Hub是Docker官方提供的Registry
。即可以从Docker Hub
的顶层仓库中免费获取官方提供的基于镜像,又可以将自已构建的镜像存放于Docker Hub的用户仓库中。
Docker 镜像(Image
)是一种分层结构的文件系统,基于 Docker Hub 中已构建好的镜像后,我们可以快速构建自己的镜像。还可以将自己构建的镜像免费推送到Docker Hub的用户仓库进行管理,然后就可以基于这些镜像创建容器。
使用docker build
命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile
文件。Dockerfile
文件是一个由一系列构建指令组成的文本文件,docker build
命令会根据这些构建指令完成Docker镜像的构建。本文将会介绍Dockerfile
文件,及其中使用的构建指令。
卷(Volume
)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享。通过卷,我们可以可以使修改数据直接生效,而不必重新构建镜像。
介绍完Docker容器、镜像与仓库、构建镜像等基础知识后,接下来几篇将介绍一些Docker 使用示例。本篇我们将基于Dockerfile
文件构建一个Nginx静态网站服务器,并使用这个服务器运行一个存在于宿主机上的静态网站,并基于Docker容器卷实现对这个网站的实时更新。
本篇我们将使用Docker
部暑更复杂的应用,在本文示例中,我们会创建一个简单的名为express-app
的Node.js(Express
)应用,并通过Dockerfile
构建镜像,实现基于Docker的Node.js应用的快速部暑。
在使用Docker容器时,我们需要访问容器的内部网络,或需要在容器间相互访问。Docker 容器默认不会开放任何端口,因此需要将容器与宿主机进行端口映射,使容器可外部访问。而容器间互相访问,除了可以基于端口映射进行访问外,还可以通过容器链接(Link)的方式,也可以通过Docker 网络(Networking)实现。
阅读全文