美文网首页
docker-compose up引起的UnixHTTPConn

docker-compose up引起的UnixHTTPConn

作者: hoppyf | 来源:发表于2017-08-13 15:53 被阅读0次

    首次在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引起的UnixHTTPConn

          本文链接:https://www.haomeiwen.com/subject/qklerxtx.html