docker-compose up引起的UnixHTTPConnectionPool(host='localhost', port=None): Read timed out.

首次在mac上使用docker-compose,在写完docker-compose.yml后docker-compose up容器一直启动不起来,提示错误是

UnixHTTPConnectionPool(host='localhost', port=None): Read timed out.

碰到问题当然是先检查docker-compose.yml的配置了,大致是这样的:


version:"2"

services:

  redis:

    image:redis:latest

    container_name:xxxx

    volumes:

      - ./data/redis:/data

    restart:always

  mysql:

    build:../mysql

    container_name:prador_mysql

    volumes:

      - ./data/mysql:/var/lib/mysql

    ports:

      -"3306:3306"

    environment:

      - MYSQL_ROOT_PASSWORD=xxxx

      - MYSQL_DATABASE=xxxx

按照经验应该是没什么问题的,但是在up的时候总是超时,接下来就是一顿google,结果发现在github上发现很多这类情况,解决方案基本是设置超时时间更长120s,默认是60s,尝试后问题依旧

  • 最开始怀疑是mac上docker的问题,于是乎升级docker,重装docker问题依旧

  • 这个时候回想到data这个目录的挂载,我是采用了软连接,实际data这个文件夹不在和docker-compose.yml同级目录下,遂ls data一下,发现是data(实际应该是redis和mysql两个文件夹),cd data的时候出现Too many levels of symbolic links

  • 接下来问题就明确了,软连接用的不对,参考

http://www.cnblogs.com/beifei/archive/2011/09/07/2170301.html

  • 后续经过测试,对于不同级目录的软连接,需要使用绝对路径,至此问题解决,docker-compose up能成功运行容器

你可能感兴趣的:(docker-compose up引起的UnixHTTPConnectionPool(host='localhost', port=None): Read timed out.)