Docker中的Docker与连接到内部集装箱网络(锚地引擎)有关
我在尝试从容器内部连接到docker compose网络时遇到问题。这些是我正在处理的文件。当我Docker中的Docker与连接到内部集装箱网络(锚地引擎)有关,docker,http,docker-compose,containers,dind,Docker,Http,Docker Compose,Containers,Dind,我在尝试从容器内部连接到docker compose网络时遇到问题。这些是我正在处理的文件。当我/run.sh时,整个过程都会运行 Dockerfile: FROM docker/compose:latest WORKDIR . # EXPOSE 8228 RUN apk update RUN apk add py-pip RUN apk add jq RUN pip install anchorecli COPY dockertest.sh ./dockertest.sh COPY doc
/run.sh
时,整个过程都会运行
Dockerfile:
FROM docker/compose:latest
WORKDIR .
# EXPOSE 8228
RUN apk update
RUN apk add py-pip
RUN apk add jq
RUN pip install anchorecli
COPY dockertest.sh ./dockertest.sh
COPY docker-compose.yaml docker-compose.yaml
CMD ["./dockertest.sh"]
docker-compose.yaml
services:
# The primary API endpoint service
engine-api:
image: anchore/anchore-engine:v0.6.0
depends_on:
- anchore-db
- engine-catalog
#volumes:
#- ./config-engine.yaml:/config/config.yaml:z
ports:
- "8228:8228"
..................
## A NUMBER OF OTHER CONTAINERS THAT ANCHORE-ENGINE USES ##
..................
networks:
default:
external:
name: anchore-net
dockertest.sh
echo "------------- INSTALL ANCHORE CLI ---------------------"
engineid=`docker ps | grep engine-api | cut -f 1 -d ' '`
engine_ip=`docker inspect $engineid | jq -r '.[0].NetworkSettings.Networks."cws-anchore-net".IPAddress'`
export ANCHORE_CLI_URL=http://$engine_ip:8228/v1
export ANCHORE_CLI_USER='user'
export ANCHORE_CLI_PASS='pass'
echo "System status"
anchore-cli --debug system status #This line throws error (see below)
run.sh:
#!/bin/bash
docker build . -t anchore-runner
docker network create anchore-net
docker-compose up -d
docker run --network="anchore-net" -v //var/run/docker.sock:/var/run/docker.sock anchore-runner
#docker network rm anchore-net
错误消息:
系统状态
INFO:anchorecli.clients.apiexternal:As Account=None
调试:urllib3.connectionpool:启动新的HTTP连接(1):172.19.0.6:8228
错误:无法访问锚点服务(user=user url=):HTTPConnectionPool(host='172.19.0.6',port=8228):url超过最大重试次数:/v1
(由NewConnectionError(':建立新连接失败:[Errno 111]连接被拒绝',)引起)
步骤:
anchore-net
anchore cli--u user--p pass--url http://$engine\u ip/8228/v1系统状态
,但这会引发相同的错误
对于那些花时间阅读本文的人,我非常感谢你们能给我提供的关于问题可能存在的任何信息。非常感谢。您几乎不应该使用
docker inspect
查找docker内部IP地址;该地址仅适用于一个非常特定的主机操作系统设置。请使用您的普通主机的IP地址或DNS名称以及发布的端口:
。我感谢您的建议,您是否可以向我详细解释一下您的意思?我曾尝试使用localhost,并相应地映射了端口,但执行这些命令的容器无法识别它们。我不太熟悉容器内部的网络交互是如何工作的。