尝试使用Docker连接多个容器的实例编号为13

パンプキン カフェ (2).png

你好。我叫Mayumi。

我正在以系列形式撰写关于Docker的文章。

在之前的第11篇文章中,我介绍了如何使用”docker-compose”将多个容器连接起来。

※docker-composeのロゴをまねてみました。(笑).png

在本文中,

我想通过使用”Docker”而不是docker-compose来连接多个容器,感受一下这样做有多么麻烦,我将把这个略带自虐的实验总结成一篇文章。

只是通过亲身尝试这个麻烦的过程,我能够深刻理解网络是如何构建起来的。

我希望能与大家分享这种繁琐的经历。

这次要做的应用程序

即使说是”我创作了”,但实际上代码是从GitHub借来的。

请从这里获取GitHub上的代码。

网络建设的概要如下所述。

2021-06-13_9-58-29.png

这个应用的概述是什么?

请投票选择喜欢狗还是喜欢猫,将结果进行统计并存入数据库,然后再次显示。

那是一种东西。

使用git clone命令来复制存储库。

2021-06-13_10-01-29.png
2021-06-13_10-04-54.png

构建Dockerfile

在投票目录中构建Dockerfile。(使用-t voting-app选项,创建了一个名为voting-app的映像)

2021-06-13_10-08-57.png
docker build -t voting-app .
2021-06-13_10-12-48.png

那么,让我们从制作好的镜像中启动容器吧。由于这是一个Web应用程序,不要忘记进行端口映射以便进行运行。

docker run -p 5000:80 voting-app

接着,我尝试访问 localhost:5000。

成功显示了。

2021-06-13_10-20-25.png

然而,当您在这里点击狗或猫的按钮进行投票时,会出现错误。

2021-06-13_10-23-05.png

回到终端后,发现由于与redis连接失败导致了错误的产生。

因为我还没有启动redis容器,所以当然是当然的。

2021-06-13_10-24-31.png

启动Redis容器

将redis容器装载

以脱机模式运行(添加-d选项)
并命名为redis(添加–name=”redis”选项)

启动。

docker run -d --name=="redis" redis

确认Redis已启动后,再次从之前的Dockerfile创建的镜像(命名为voting-app)中启动容器。

要将Redis和voting-app连接起来,需要添加–link redis:redis选项来执行。

docker run -p 5000:80 --link redis:redis voting-app

请尝试访问localhost:5000,并点击CATS或DOGS按钮,这次确实出现了勾号。

2021-06-13_10-56-31.png

准备Postgres

由於與 Redis 的連接,接下來我們想要與 worker 進行連接。然而,在進行連接之前,我們需要先啟動 Postgres。

请您将以下内容进行中文简洁化:
GitHub的

例子-投票应用程序 > docker-compose.yml

提供了应使用的PostgreSQL版本,因此我们将执行该版本的PostgreSQL容器。

2021-06-13_11-04-34.png
2021-06-13_11-01-39.png
docker run -d --name="db" postgres:9.4    

如果在以上代码中,容器启动但Postgre保持运行状态不变的话,请尝试使用以下代码。

docker run -d --name=db -e POSTGRES_PASSWORD=postgres postgres:9.4

我们要从worker目录中的Dockerfile构建镜像。

docker build -t worker-app .

如果您查看体系结构的概述,就会明白worker与Postgre和redis相连接。

用链接选项

工人将两台服务器连接起来并运行。

docker run --link redis:redis --link db:db worker-app

执行result目录下的Dockerfile

最后,我们将启动用于计算投票结果并显示结果的result-app的Dockerfile。

请运行 result目录中的Dockerfile。

docker build -t result-app .

在完成Image创建之后,使用该Image来运行容器。

docker run -p 5001:80 --link db:db result-app

让我们尝试访问 localhost:5001

2021-06-13_11-43-29.png

如果你在Voting-app上投票给CATS,那么应该显示CATS的比例为100%。

总结

本次文章中,我借用了GitHub上的代码,重点讨论了应该连接哪个容器和哪个容器的问题。

不避免地,我选择使用DockerCLI而非docker-compose来尝试。

真是非常烦人啊。(笑)

下一次,我想尝试使用『docker-compose』来启动同一款应用程序。

广告
将在 10 秒后关闭
bannerAds