当前位置: 首页 > 科技观察

在Linux上安装和使用Docker_0

时间:2023-03-15 08:20:03 科技观察

容器目前在IT世界风靡一时——这很有意义。容器是轻量级的、独立的包,其中包含应用程序运行所需的一切(代码、库、运行时环境、系统设置和依赖项)。每个容器都部署在自己的CPU、内存、块I/O和网络资源上,所有这些都独立于内核和操作系统。这也是容器和虚拟机最大的区别;相比之下,虚拟机是运行在主机操作系统上的完整操作系统平台,而容器则不是。容器允许您以高效的方式扩展交付能力(无论是内部还是外部)。例如,您可以快速部署多个NGINX实例(甚至应用于多个不同的阶段——例如开发和生产)。与虚拟机不同,容器不会消耗太多系统资源。Docker使创建、部署和管理容器变得异常容易。更好的是,在Linux平台上安装和使用Docker特别容易。我将向您展示在Linux上安装Docker是多么容易,并让您开始使用Docker。我的演示平台是Ubuntu16.04Server,但大多数其他Linux平台的过程都类似。我在这里假设您已经启动了UbuntuServer16.04。安装由于UbuntuServer16.04没有图形界面,我将完全通过命令行安装和使用Docker。在安装之前,您需要更新apt并执行必要的升级。需要注意的是,如果升级了系统内核,则需要重启系统。因此,最好选择一个可以重启服务器的时间。运行以下命令更新apt:sudoaptupdate完成后,使用命令升级系统:sudoaptupgrade如果内核升级,需要重启服务器使用以下命令:sudoreboot如果内核没有升级升级后,即可安装Docker(无需重启)。安装Docker的命令是:sudoaptinstalldocker.io如果你使用的是其他Linux发行版,当你尝试用相应的包管理器安装时发现没有docker.io包,你应该安装docker包。比如在Fedora上安装应该使用命令:sudodnfinstalldocker如果你使用的是CentOS7,那么最好使用安装脚本来安装docker。首先使用命令sudoyumcheck-update更新系统。升级完成后,输入以下命令下载并运行所需的脚本:curl-fsSLhttps://get.docker.com/|sh默认只有管理员权限才能运行docker命令。出于安全原因,您不想以root身份运行Docker或使用sudo。要解决此问题,您需要将自己的用户添加到docker组。命令如下:sudousermod-a-Gdocker$USER操作完成后,退出系统重新登录,应该就可以了。但是,如果你的平台是Fedora,你在添加用户到docker组的时候会发现这个组并不存在。那么该怎么办?您需要先创建该组。命令如下:sudogroupadddocker&&sudogpasswd-a${USER}docker&&sudosystemctlrestartdockernewgrpdocker注销重新登录。您可以开始使用Docker。启动、暂停和启用Docker安装Docker后,您可以让Docker守护程序在系统启动时自动启动。使用如下两条命令来实现:sudosystemctlstartdockersudosystemctlenabledocker如果需要停止或重启Docker守护进程,命令为:sudosystemctlstopdockersudosystemctlrestartdocker现在就可以使用Docker部署容器了。拉取镜像对于Docker来说,镜像是构建容器的基石。你可以拉下一个镜像(比如NGINX)并基于这个镜像部署任意数量的容器。在使用镜像之前,首先需要将镜像拉入系统。镜像是从注册仓库拉取的。默认情况下,安装的Docker包含了一个默认的注册仓库DockerHub——这个注册仓库里面有大量其他人贡献的镜像(既有官方镜像,也有用户自己贡献的镜像)。假设你想拉取一个与Nginx网络服务器相关的图像。在开始拉取之前,检查一下系统中已经有哪些镜像。输入dockerimages命令,你会发现还没有镜像存在(图1)。图1:还没有镜像。让我们拉一面镜子。使用以下命令从DockerHub下载Nginx镜像:dockerpullnginx上面的命令将从DockerHub下载最新的(官方)Nginx镜像。现在再次运行dockerimages命令以查看列出的图像(图2)。图2:已拉取NGINX映像。请注意,我在这里谈论的是“官方”Nginx镜像?DockerHub上有许多非官方的Nginx镜像。这些非官方镜像是出于各种目的而创建的。你可以使用下面的命令来搜索DockerHub中所有的Nginx镜像:dockersearchnginx你会发现(图3)有很多为不同目的(反向代理、PHP-FPM(LCTT译注:FastCGIProcessManager)创建的Nginx镜像FastCGIProcessManager是一个PHPFastCGI管理器,旨在将FastCGI进程管理集成到PHP包中)、LetsEncrypt(LCTT译注:ISRG提供的免费SSL项目)、Bitnami,用于RaspberryPiNginx和Drupal等)。图3:在DockerHub上找到的各种NGINX图像。假设,你想下载内置反向代理功能的Nginx镜像,有一个非官方镜像jwilder/nginx-proxy。于是输入如下命令拉取这个镜像:dockerpulljwilder/nginx-proxy然后输入dockerimages命令查看新拉取的镜像(图4)。图4:已经有两个不同的NGINX镜像。出于谨慎,我建议只使用官方镜像,毕竟你无法确定非官方镜像是否包含恶意代码。拥有映像后,您可以使用它来部署容器。下次我们会讲到如何通过这些Nginx镜像来发布容器。Docker是一个超级强大的系统,可以使您的工作更轻松,使您的公司更具可扩展性和灵活性。要查看Docker还能做什么,请运行mandocker并阅读其文档。