使用容器轻松托管网站

容器是部署服务和应用程序的隔离实例的好方法。
使用这些容器化工具,我们可以轻松地将它们从一台服务器移动到另一台服务器,快速更新它们,甚至将它们部署到集群上以获得更大的可扩展性。
本文将引导我们完成安装市场上最流行的容器工具之一 Docker,然后部署 NGINX Web 服务器的过程。

安装

在 Ubuntu 18.04 上安装 Docker 非常简单。
打开终端窗口(或者通过 SSH 登录到 Ubuntu 服务器)。

  • 在安装 Docker 之前,最好更新和升级服务器。但是请记住,如果升级包括内核,我们需要重新启动服务器以使更改生效。因此,请在可以重新启动服务器时运行更新/升级命令。
    更新和升级 Ubuntu服务器 的命令是:
sudo apt-get update
sudo apt-get upgrade
  • 当这两个命令完成后(如果需要,我们已经重新启动),然后我们可以通过发出以下命令来安装 Docker:
sudo apt-get install docker.io
  • 该命令完成后,使用以下命令启动并启用 Docker:
sudo systemctl start docker
sudo systemctl enable docker

这将启用 Docker,使其在服务器重新启动时自动启动。

  • 接下来,将用户添加到 docker 组。否则,我们必须使用 sudo 权限运行 docker 命令,这可能会导致安全问题。这可以通过一个命令来处理:
sudo usermod -aG docker $USER

usermod 是修改用户的实际命令。

  • a 选项指示我们要添加到用户的 usermod。
  • G 选项指示 usermod 我们将用户添加到组中。
  • docker 是我们要将用户添加到的组。
  • $USER 指示 bash 使用当前登录的用户。
  • 运行上述命令后,注销并重新登录以使更改生效。
    我们现在已准备好开始使用 Docker。

从 DockerHub 拉取镜像

DockerHub 是一个集中式存储库,其中包含可用作容器基础的图像。

DockerHub 包含数以千计的图像,其中一些用于非常具体的(甚至是小众用途)。

  • 由于目标是部署 NGINX 容器,所以拉下官方 NGINX 容器。

在执行此操作之前,请发出以下命令:

docker images

该命令的输出应显示未找到的当前图像。

  • 使用以下命令拉下 NGINX 镜像:
docker pull nginx
  • 上面的命令下拉图像。如果我们执行命令 docker images,我们将看到列出的新拉取的镜像。
在 Ubuntu 18.04 上安装 Docker 并部署 NGINX 容器

部署 NGINX 容器

既然我们拥有了作为容器基础的镜像,就可以将 NGINX 的容器化实例部署到网络上。
使用 NGINX 作为容器,我们可以控制它部署在哪个端口上。

  • 在标准端口 80 上部署 NGINX。为此,命令如下所示:
docker run --name docker-nginx -p 80:80 nginx

对上述命令的一点解释:
docker 是实际的命令

  • run 指示命令后面的内容将与该命令一起运行。
  • --name 为容器提供一个人类可读的名称。
  • -p 指示 Docker 将使用哪些端口。
  • 80:80 - 第一个 80 是外部端口(在网络上使用),第二个 80 是内部端口(由 Docker 使用)。
  • nginx 是用于容器的镜像。
  • 部署该容器后,我们应该能够将浏览器指向 http://SERVER_IP(其中服务器 IP 是托管 Docker 的服务器的 IP 地址)并查看 NGINX 欢迎页面。
  • 我们还会注意到我们没有恢复命令提示符。为什么?我们在添加模式下运行了该命令。如果我们按下 Ctrl + c 组合键,容器将被杀死,并且我们会收到提示。
  • 如果要保持容器运行并返回提示,则必须以分离模式部署容器,如下所示:
docker run --name docker-nginx -p 80:80 -d nginx
  • 但是,由于我们已经部署了第一个容器,我们会看到一个错误。为避免这种情况,我们必须使用 docker stop 命令停止第一个容器。为此,我们必须记下容器名称(它会在错误中打印出来),它是一长串随机字符。要运行此命令,我们只需使用容器的前四个字符,如下所示:
docker stop f149
  • 接下来,使用以下命令删除容器:
docker rm f149

原始容器现已停止并已移除。然后,我们可以在分离模式下成功重新部署 NGINX 容器。

日期:2020-07-15 11:16:38 来源:oir作者:oir