如果您是为开发人员提供支持的Linux系统管理员,您可能听说过Docker 。 如果没有,这个软件解决方案将帮助您降低运营成本并加快部署,让您的工作变得更轻松。
但这不是魔术。 作为平台的Docker利用容器 - 应用程序包以及运行所需的所有工具来消除环境之间的差异。
换句话说,无论容器安装在何处,容器化软件都可以运行,并且可以一直进行管理。 另外,容器的设置,启动,停止和维护比旧的虚拟机容易得多。 如果您有兴趣了解这两种技术之间的差异, Docker官方网站提供了一个很好的解释。
为了演示,在本文中,我们将解释如何在CentOS 7和Ubuntu 16.04上安装Docker ,并从Docker Hub启动Apache 2.4容器。
然后,我们将使用它来从我们的主目录提供一个简单的网页 - 所有这些都不需要在我们的主机上安装Web服务器。
在CentOS和Ubuntu上安装Docker
首先,让我们使用以下命令安装Docker 。 这将下载并运行一个shell脚本,该脚本会将Docker存储库添加到我们的系统并安装该软件包。
# curl -fsSL https://get.docker.com | sh
接下来,使用systemctl命令启动主要的Docker服务并检查其状态。
# systemctl start docker # systemctl status docker
在这一点上,我们可以简单地执行。
# docker
查看可用命令的列表或获得帮助。
# docker COMMAND --help # docker ps --help
将告诉我们如何列出我们系统中存在的容器,然而
# docker run --help
将打印我们可以用来操纵容器的所有选项。
设置Apache容器
Docker生态系统的一个惊人之处是,有几十个标准容器可以轻松下载和使用。 在下面的例子中,我们将实例化一个名为youcl-web的Apache 2.4容器,从当前终端分离。 我们将使用来自Docker Hub的名为httpd:2.4的映像。
我们的计划是要求将我们在8080端口上公开的IP地址的请求重定向到容器上的端口80 。 另外,我们不会从容器本身提供内容,而是从/ home / user / website提供简单的网页。
我们通过在容器上的/ usr / local / apache2 / htdocs /映射/ home / user / website /来执行此操作。 请注意,您需要使用sudo或以root身份登录才能继续,并且不要忽略每个目录末尾的正斜杠。
# sudo docker run -dit --name youcl-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4
在这一点上,我们的Apache容器应该启动并运行。
$ sudo docker ps
检查Apache Docker容器
现在让我们在/ home / user / website目录中创建一个名为docker.html的简单网页。
# vi /home/user/website/docker.html
将以下示例HTML内容添加到文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Learn Docker at youcl.com</title> </head> <body> <h1>Learn Docker With Us</h1> </body> </html>
接下来,将您的浏览器指向AAA.BBB.CCC.DDD:8080 / docker.html (其中AAA.BBB.CCC.DDD是您主机的公共IP地址)。 您应该看到我们之前创建的页面。
检查Apache页面
如果你愿意,你现在可以停止容器。
$ sudo docker stop youcl-web
并删除它:
$ sudo docker rm youcl-web
要完成清理,您可能需要删除容器中使用的图像(如果您计划尽快创建其他Apache 2.4容器,请忽略此步骤)。
$ sudo docker image remove httpd:2.4
请注意,在上述所有步骤中,我们从未必须在我们的主机上安装Web服务器。
概要
在本文中,我们解释了如何安装Docker并操作容器。 不幸的是,这些只是基础知识 - 整个课程,书籍和认证考试都涵盖了Docker(以及一般的容器)。
如果您想了解有关Docker的更多信息,我们已经介绍了3篇系列文章,它解释了如何安装Docker,将应用程序运行到容器中以及使用dockerfile自动构建docker映像。
- 在CentOS和RHEL 7/6中安装Docker并学习基本的容器操作
- 如何在CentOS / RHEL 7/6上将应用程序部署并运行到Docker容器中
- 在CentOS / RHEL 7/6上使用Dockerfile自动构建和配置Docker镜像
以此为出发点,让我们知道您是否有任何问题或意见 - 我们期待您的回音!