Задать вопрос
@Artem0071
Безработный mr. Junior

Как сделать бенчмарк локально через докер?

Есть сайт локальный somesite.test
Он прописан в /etc/hosts:
127.0.0.1 somesite.test
Делаю curl somesite.test, выводится:
Hello World!
Делаю ping somesite.test, выводится:
ping: cannot resolve http://somesite.test/: Unknown host


И самая проблема, делаю docker run --rm httpd ab -c 3 -n 20 somesite.test
И выводится:
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking somesite.test (be patient)...apr_socket_recv: Connection refused (111)
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Сложный Комментировать
Решения вопроса 1
deepblack
@deepblack
вот это:

ping: cannot resolve http://somesite.test/: Unknown host


у тебя потому что ты явно скопировал в консоль
ping http://somesite.test/
хотя должно быть так:
ping somesite.test
Идем дальше

Откуда докер по твоему должен узнать что somesite.test это 127.0.0.1 ?
Ты ведь не в контейнере добавил эту запись в /etc/hosts верно?

А если бы добавил, то 127.0.0.1 укажет на сам докер контейнер.

Тебе нужно запустить nginx (или что там у тебя: traefik, apache, caddy, haproxy) на локальном ( к примеру 10.10.0.8 или 192.168.0.8) адресе.
Убедиться что сайт доступен по этому адресу,
затем запустить контейнер с ключом --add-host somesite.test:10.10.0.8 указав тут свой ip
Примерно так:
docker run --rm --add-host somesite.test:10.10.0.8 httpd ab -c 3 -n 20 somesite.test


UPD:

Artem0071,
тогда можно сделать так, например:

cat docker-compose.yml
образ взял для примера, у тебя будет свой
version: "3"

services:
    nginx-server:
        image: nginx
        restart: always
        ports:
            - "8000:80"
        volumes:
            - ./src:/usr/share/nginx/html
        networks:
          default:
            aliases:
              - www.google.com
              - bober.kurwa.pl

    client:
        restart: always
        image: nginx


Тогда можно будет делать так:

docker exec -ti tmp-client-1 /usr/bin/ping bober.kurwa.pl

650eb7297c184645650238.png

Т.е. запусти свои сервисы из одного docker-compose и пропиши для нужного контейнера aliases
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы