我正在使用Docker For Windows,已经在我的docker主机上构建了一组镜像。当我尝试使用
版本信息:
docker-compose up -d
命令启动我的环境时,我经常会遇到不同容器的i/o超时错误。通常情况下,重试可以解决问题,但我正在尝试自动化此过程,并不能指望重新运行整个流水线。版本信息:
Docker version 18.09.0, build 4d60db4
docker-compose version 1.23.1, build b02f1306
命令行日志:C:\workspace\AK_DOCKER_RISK\docker-compose>docker-compose up -d
Creating risk-svc ...
Creating risk-svc ... done
Creating risk-prc ...
Creating risk-web ...
Creating risk-web ... error
ERROR: for risk-web b'i/o timeout'
Creating risk-prc ... done
ERROR: for web b'i/o timeout'
Encountered errors while bringing up the project.
这个错误会随机出现,有时是svc、web或prc。
请问有人能解释一下为什么会出现这个错误,更重要的是,如何解决这个问题呢?
这是我的docker-compose.yml文件:
version: '3'
services:
web:
image: iis-core-web:1910.252
build:
context: .
dockerfile: ./web/Dockerfile
container_name: risk-web
ports:
- "9111:8080"
tty: true
links:
- svc
volumes:
- ../RiskLogs/web:c:/RiskLogs
svc:
image: iis-core-svc:1910.252
build:
context: .
dockerfile: ./svc/Dockerfile
container_name: risk-svc
ports:
- "9112:8080"
tty: true
volumes:
- ../RiskLogs/svc:c:/RiskLogs
prc:
image: iis-core-prc:1910.252
build:
context: .
dockerfile: ./prc/Dockerfile
container_name: risk-prc
tty: true
links:
- svc
volumes:
- ../RiskLogs/prc:c:/RiskLogs
# prevent creation of new network and use existing nat
networks:
default:
external:
name: nat
image:
或者build:
而不是混合使用它们,在生产环境的 docker-compose 中最好使用image:
。我还认为links
已经过时,应该被depends_on
替换。你的 docker 和 docker-compose 版本是多少? - Mazel Tovdepends_on
。我想保留图像和构建选项,以便可以使用docker-compose up
命令的-build
参数进行灵活操作。我的Docker版本是18.09.0, build 4d60db4
,docker-compose版本是1.23.1, build b02f1306
。我还更新了问题的详细信息。 - KatariaA