三、在容器中运行软件

2020-04-06  本文已影响0人  Judy警官

在上一节中,已经弄懂了docker的相关概念,那么它到底如何用在工作中呢?下面我们就用一个例子来说明docker的基本用法:建立一个网站的监控器,这个需求在我们的工作中是常见的,如下图:


image.png

总共需要建立3个容器:nginx服务器(当然我们不会在服务器上部署一个真正的应用,只是监视这个web服务器是否正常)、邮件服务器和监控器。实现的功能是:监控器监控nginx服务器,一旦有异常就通过邮件服务器发邮件。

搭建环境

1.镜像准备

镜像地址:https://hub.docker.com/u/dockerinaction?page=1
通过以下docker pull命令拉取镜像到本地:
监控器镜像:

docker pull dockerinaction/ch2_agent

nginx镜像:

docker pull nginx:latest

邮件服务器镜像:

docker pull dockerinaction/ch2_mailer

2.创建并启动容器

有两种启动容器的方法:后台运行和交互式运行。
首先我们要在后台运行nginx和邮件服务器这两个容器,命令如下:

docker run -d --name web nginx:latest
docker run -d --name mailer dockerinaction/ch2_mailer 

命令解释:

上面两个容器都是通过后台运行的方式启动的,不能和容器进行交互,接下来将使用交互式启动监控服务器。交互式容器需要一个标准输入流和一个虚拟终端。命令如下:

docker run -it --name agent --link web:insideweb --link mailer:insidemailer dockerinaction/ch2_agent 

命令解释:

第三个容器运行之后,该容器将每秒测试Web容器,并打印消息:System up。想要退出交互式容器时,可以按住ctrl+p+q即可。

测试环境

软件环境搭建好了之后,我们来测试一下整个系统。测试的过程中会用到docker ps、docker restart、docker stop、docker logs等命令。回想一下我们搭建这个系统的目的,想要容器agent监控web服务器,当web服务器异常时发邮件报告。此时我们可以通过查看三个容器的日志来判断系统的正确性。

1.查看当前运行的容器:

docker ps

结果如下图:


image.png

可以看到现在只有web和mailer两个容器是运行态,因为刚刚我们运行监控器agent容器时采用的是交互式,一旦退出交互就会停止交互式容器。接下来就要重启agent

2.重启监控器agent容器:

docker restart agent

结果如下图:


image.png

现在可以看到web、mailer和agent三个容器都是运行态

3.观察mailer容器的日志,查看是否有异常

docker logs mailer

结果如下图:


image.png

现在mailer没有任何日志,说明web容器运行正常

4.停止web容器,再次查看mailer日志

docker stop web
docker logs mailer

结果如下图:


image.png

这里可以看到mailer的有一条日志:Sending email: To: admin@work Message: The service is down!
说明当web容器异常时,监控器agent容器检测到了,并且成功发送了邮件。

至此,本例结束。如果你有一台linux机器,并且安装了docker,你就可以试一下上面的例子哦~

上一篇下一篇

猜你喜欢

热点阅读