如何解决在单个 fargate 任务中运行多个容器以进行 clair 容器扫描
我们在同一个 fargate 任务中运行 clair
和 clair-db
容器。以下是我们任务定义的片段。
{
"family": "clair","networkMode": "awsvpc","containerDeFinitions": [
{
"name": "db","image": "<REPO_URL>/clairdb:v1.0","essential": true,"command": [
"sh","-c","echo clair db runs"
],"portMappings": [
{
"containerPort": 5432,"hostPort": 5432,"protocol": "tcp"
}
],},{
"name": "clair","image": "<REPO_URL>/clair:v1.0","echo clair runs"
],"portMappings": [
{
"containerPort": 6060,"hostPort": 6060,
根据 ,localhost
可用于在 awsvpc 模式下在单个任务的这两个容器之间进行通信。我们在 Clair config.yaml
clair:
database:
type: pgsql
options:
source: host=localhost port=5432 user=postgres password=xxxx sslmode=disable statement_timeout=60000
因此,理想情况下,clair
应该能够链接到在同一网络上的 clair-db
上运行的 localhost:5432
容器。 Clair-db
容器在 fargate 中运行良好,但 clair
容器失败并显示以下日志:
{"Event":"pgsql: Could not open database: dial tcp 127.0.0.1:5432: connect: connection refused","Level":"fatal","Location":"main.go:97","Time":"2021-03-23 13:26:38.737437"}
在 docker 术语中,这就是我们如何链接这两个容器:
docker run -p 5432:5432 -d --name db arminc/clair-db:2017-05-05
docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.0-rc.0
我们在这里遗漏了什么吗?知道为什么与 localhost
的连接在 clair 的 fargate 容器中不起作用吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。