Docker作为一种容器化技术,近年来在软件开发领域广受欢迎。尽管流行并非总是使用某项技术的好理由,但Docker确实不负众望。Docker容器提供了一个隔离的环境,应用程序在其中运行。它类似于虚拟机,但开销更小。虚拟机通常会虚拟化整个计算机,包括CPU、内存、输入输出设备以及操作系统。而Docker则运行在已安装的操作系统之上,与宿主操作系统共享内核和内存。因此,不需要像虚拟机那样预先分配CPU或内存。容器内运行的进程按需使用资源,剩余资源可供其他容器或宿主操作系统上的进程使用。
通常情况下,一个Docker容器只包含一个应用程序。容器还包含了应用程序的所有运行时依赖,因此无需安装任何东西或执行任何设置步骤——只需将Docker镜像拉取到想要运行的机器上,然后启动容器即可。Docker还使用不可变的文件系统,因此如果多个应用程序使用复杂的基础镜像(如Ubuntu),不需要为每个应用程序保留单独的Ubuntu镜像副本,从而节省磁盘空间。相反,将拥有一个Ubuntu基础镜像的单一副本,每个应用程序的文件系统将只包含基础镜像和应用程序镜像之间的差异。
Docker支持Windows、Linux和MacOS。以下是各个操作系统的安装步骤。
从下载Docker。下载完成后,运行安装程序。如果可以选择Windows容器和Linux容器,请选择Linux。
从下载Docker。下载完成后,打开.dmg文件并运行安装程序。安装完成后,会在Mac的应用文件夹中看到一个Docker应用程序。运行此应用程序以启动Docker守护进程。
导航至。这个地址包含一个bash文件,在文件顶部的注释块中,将看到如何在Linux上设置Docker的说明。目前,设置Docker需要运行两个终端命令:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sh get-docker.sh
许多Linux发行版提供了可以通过发行版的包管理器安装的Docker包。然而,其中一些Docker包可能非常旧。只要通过Linux发行版提供的Docker版本是相当新的——在过去的12个月内发布的——它应该足够新,可以完成这个教程。
当Docker安装后,它通常会添加到系统路径中,因此可以在打开命令提示符或终端时从任何地方运行。所以,让开始吧,打开一个终端:
在Windows上,打开命令提示符或Powershell窗口。在MacOS上,打开Terminal.app(或者如果喜欢的话,iTerm)。在Linux上,打开xterm或者Linux发行版附带的任何终端程序。
现在,在终端窗口中,运行以下命令:
docker pull codeproject/docker-contest
当运行命令时,将看到Docker从Docker Hub拉取CodeProject竞赛镜像。由于它基于Alpine Linux,这个镜像应该下载得很快,只有几兆字节。
现在已经拉取了CodeProject竞赛镜像,是时候生成将用于参赛的代码了!为此,在终端中运行以下命令:
docker run -it codeproject/docker-contest
镜像将启动,将看到它要求输入CodeProject会员号码。可以在个人资料页面上,直接在头像或头像上方找到会员号码。输入号码,CodeProject竞赛Docker镜像将给一个可以用于参赛的代码。可以在找到竞赛入口页面。
就是这样!已经安装了Docker,拉取了一个镜像,并在Docker容器内运行了它。只是触及了Docker的皮毛,但现在已经安装并使用了它,已经准备好深入学习一些更高级的教程了。
docker run hello-world
docker --version
docker info