首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >码头-慢速网络条件

码头-慢速网络条件
EN

Stack Overflow用户
提问于 2020-01-08 18:34:23
回答 1查看 2.2K关注 0票数 0

我有一个带有几个服务的坞-组合设置,如下所示:

代码语言:javascript
运行
复制
version: '3.6'

services:

  web:
    build:
      context: ./services/web
      dockerfile: Dockerfile-dev
    volumes:
      - './services/web:/usr/src/app'

    ports:
      - 5001:5000
    environment:
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious
    depends_on:  
      - web-db
      - redis


  web-db:  
    build:
      context: ./services/web/projct/db
      dockerfile: Dockerfile
    ports:
      - 5435:5432
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres


  nginx:
    build:
      context: ./services/nginx
      dockerfile: Dockerfile-dev
    restart: always
    ports:
      - 80:80
    depends_on:
      - web
      - client
      #- redis


  client:
    build:
      context: ./services/client
      dockerfile: Dockerfile-dev
    volumes:
      - './services/client:/usr/src/app'
      - '/usr/src/app/node_modules'
    ports:
      - 3000:3000
    environment:
      - NODE_ENV=development
      - REACT_APP_WEB_SERVICE_URL=${REACT_APP_WEB_SERVICE_URL}
    depends_on:
      - web


  swagger:
    build:
      context: ./services/swagger
      dockerfile: Dockerfile-dev
    volumes:
    - './services/swagger/swagger.json:/usr/share/nginx/html/swagger.json'
    ports:
      - 3008:8080
    environment:
    - URL=swagger.json
    depends_on:
      - web


  scrapyrt:
    image: vimagick/scrapyd:py3
    restart: always
    ports:
      - '9080:9080'
    volumes:
      - ./services/web:/usr/src/app
    working_dir: /usr/src/app/project/api
    entrypoint: /usr/src/app/entrypoint-scrapyrt.sh
    depends_on:
      - web


  redis:
    image: redis:5.0.3-alpine
    restart: always
    expose:
      - '6379'
    ports:
      - '6379:6379'


  monitor:
    image: dev3_web
    ports:
      - 5555:5555
    command:  flower -A celery_worker.celery --port=5555 --broker=redis://redis:6379/0
    depends_on:
      - web
      - redis


  worker-analysis:
    image: dev3_web
    restart: always
    volumes:
      - ./services/web:/usr/src/app
      - ./services/web/celery_logs:/usr/src/app/celery_logs

    command: celery worker -A celery_worker.celery --loglevel=DEBUG --logfile=celery_logs/worker_analysis.log -Q analysis
    environment:
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious  
    depends_on:
      - web
      - redis
      - web-db
    links:
      - redis:redis
      - web-db:web-db


  worker-scraping:
    image: dev3_web
    restart: always
    volumes:
      - ./services/web:/usr/src/app
      - ./services/web/celery_logs:/usr/src/app/celery_logs

    command: celery worker -A celery_worker.celery --loglevel=DEBUG --logfile=celery_logs/worker_scraping.log -Q scraping
    environment:
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious  
    depends_on:
      - web
      - redis
      - web-db
    links:
      - redis:redis
      - web-db:web-db


  worker-emailing:
    image: dev3_web
    restart: always
    volumes:
      - ./services/web:/usr/src/app
      - ./services/web/celery_logs:/usr/src/app/celery_logs

    command: celery worker -A celery_worker.celery --loglevel=DEBUG --logfile=celery_logs/worker_emailing.log -Q email
    environment:
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious
    depends_on:
      - web
      - redis
      - web-db
    links:
      - redis:redis
      - web-db:web-db


  worker-learning:
    image: dev3_web
    restart: always
    volumes:
      - ./services/web:/usr/src/app
      - ./services/web/celery_logs:/usr/src/app/celery_logs

    command: celery worker -A celery_worker.celery --loglevel=DEBUG --logfile=celery_logs/worker_ml.log -Q machine_learning
    environment:
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious  
    depends_on:
      - web
      - redis
      - web-db
    links:
      - redis:redis
      - web-db:web-db


  worker-periodic:
    image: dev3_web
    restart: always
    volumes:
      - ./services/web:/usr/src/app
      - ./services/web/celery_logs:/usr/src/app/celery_logs

    command: celery beat -A celery_worker.celery --schedule=/tmp/celerybeat-schedule --loglevel=DEBUG --pidfile=/tmp/celerybeat.pid
    environment:
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@web-db:5432/web_dev 
      - DATABASE_TEST_URL=postgres://postgres:postgres@web-db:5432/web_test
      - SECRET_KEY=my_precious  
    depends_on:
      - web
      - redis
      - web-db
    links:
      - redis:redis
      - web-db:web-db

docker-compose -f docker-compose-dev.yml up -ddocker ps给了我:

代码语言:javascript
运行
复制
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                              NAMES
396d7a1a5443        dev3_nginx             "nginx -g 'daemon of…"   23 hours ago        Up 18 minutes       0.0.0.0:80->80/tcp                 dev3_nginx_1
8ec7a51e2c2a        dev3_web               "celery worker -A ce…"   24 hours ago        Up 19 minutes                                          dev3_worker-analysis_1
e591e6445c64        dev3_web               "celery worker -A ce…"   24 hours ago        Up 19 minutes                                          dev3_worker-learning_1
4d1fd17be3cb        dev3_web               "celery worker -A ce…"   24 hours ago        Up 19 minutes                                          dev3_worker-scraping_1
d25c40060fed        dev3_web               "celery beat -A cele…"   24 hours ago        Up 17 seconds                                          dev3_worker-periodic_1
76df1a600afa        dev3_web               "celery worker -A ce…"   24 hours ago        Up 18 minutes                                          dev3_worker-emailing_1
3442b0ce5d56        vimagick/scrapyd:py3   "/usr/src/app/entryp…"   24 hours ago        Up 20 minutes       6800/tcp, 0.0.0.0:9080->9080/tcp   dev3_scrapyrt_1
81d3ccea4de4        dev3_client            "npm start"              24 hours ago        Up 19 minutes       0.0.0.0:3000->3000/tcp             dev3_client_1
aff5ecf951d2        dev3_web               "flower -A celery_wo…"   24 hours ago        Up 10 seconds       0.0.0.0:5555->5555/tcp             dev3_monitor_1
864f17f39d54        dev3_swagger           "/start.sh"              24 hours ago        Up 19 minutes       80/tcp, 0.0.0.0:3008->8080/tcp     dev3_swagger_1
e69476843236        dev3_web               "/usr/src/app/entryp…"   24 hours ago        Up 19 minutes       0.0.0.0:5001->5000/tcp             dev3_web_1
22fd91b1ab6e        redis:5.0.3-alpine     "docker-entrypoint.s…"   24 hours ago        Up 20 minutes       0.0.0.0:6379->6379/tcp             dev3_redis_1
3a0b2115dd8e        dev3_web-db            "docker-entrypoint.s…"   24 hours ago        Up 19 minutes       0.0.0.0:5435->5432/tcp             dev3_web-db_1

他们都起来了,但我正面临着极其缓慢的网络环境,有很多不稳定因素。我试图检查容器之间的连接性,并捕捉到一些最终的滞后,如下所示:

代码语言:javascript
运行
复制
docker container exec -it e69476843236 ping aff5ecf951d2
PING aff5ecf951d2 (172.18.0.13): 56 data bytes
64 bytes from 172.18.0.13: seq=0 ttl=64 time=0.504 ms
64 bytes from 172.18.0.13: seq=1 ttl=64 time=0.254 ms
64 bytes from 172.18.0.13: seq=2 ttl=64 time=0.191 ms
64 bytes from 172.18.0.13: seq=3 ttl=64 time=0.168 ms

但是通过这些测试,时间似乎没有问题,尽管有时当某些服务出现故障时,我会得到ping: bad address 'aff5ecf951d2'

有时我会犯这样的错误:

代码语言:javascript
运行
复制
ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

很多时候,我只需要重新启动Docker才能让它正常工作。

我怎样才能深入了解缓慢的网络状况,找出出了什么问题?新闻工作问题能与数量有关吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-16 22:09:34

随着容器的数量和应用程序复杂性的增加,问题就会显现出来(正如您应该始终注意到的那样)。

在我的例子中,我将其中一幅图片从高寒更改为Slim (Debian),这是非常大的。

结果,我可以通过简单地使用Docker‘Preferences’来解决这个问题:

点击“高级”并增加内存分配。

现在它又平稳地运行了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59651904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档