Мой контейнер HAproxy завершается каждый раз, когда я хочу его запустить - PullRequest
0 голосов
/ 25 апреля 2020

Мой контейнер HAproxy завершается каждый раз, когда я пытаюсь его запустить.

Я пытался запустить его без --d, чтобы понять, почему он вышел, и я получаю следующий вывод:

$ sudo docker run  --name=hapr -p 80:80 -v /haproxy/:/usr/local/etc/haproxy/  haproxy

Я получаю этот вывод:

HA-Proxy version 2.1.4 2020/04/02 - https://haproxy.org/ Status: stable branch - will stop receiving fixes around Q1 2021. Known bugs: http://www.haproxy.org/bugs/bugs-2.1.4.html Usage : haproxy [-f <cfgfile|cfgdir>]* [ -vdVD ] [ -n <maxconn> ] [ -N <maxpconn> [ -p <pidfile> ] [ -m <max megs> ] [ -C <dir> ] [-- <cfgfile>* -v displays version ; -vv shows known build options. -d enters debug mode ; -db only disables background mode. -dM[<byte>] poisons memory with <byte> (defaults to 0x50) -V enters verbose mode (disables quiet mode) -D goes daemon ; -C changes to <dir> before loading files. -W master-worker mode. -q quiet mode : don't display messages -c check mode : only check config files and exit -n sets the maximum total # of connections (uses ulimit -n) -m limits the usable amount of memory (in MB) -N sets the default, per-proxy maximum # of connections (0) -L set local peer name (default to hostname) -p writes pids of all children to this file -de disables epoll() usage even when available -dp disables poll() usage even when available -dS disables splice usage (broken on old kernels) -dG disables getaddrinfo() usage -dR disables SO_REUSEPORT usage -dr ignores server address resolution failures -dV disables SSL verify on servers side -sf/-st [pid ]* finishes/terminates old pids. -x <unix_socket> get listening sockets from a unix socket -S <bind>[,<bind options>...] new master CLI

Если я перечисляю контейнер, я получаю следующее сообщение:

$ docker container ls -a

Exited (1) 3 minutes ago

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Я исправил проблему, если у кого-то возникла такая же проблема. Так что просто у вас должен быть полный путь в вашей команде. вместо

$ sudo docker run  --name=hapr -p 80:80 -v /haproxy/:/usr/local/etc/haproxy/  haproxy

используйте

$ sudo docker run  --name=hapr -p 80:80 -v /home/ubuntu/haproxy/:/usr/local/etc/haproxy/  haproxy

, также вы должны иметь haproxy.cfg уже на вашем хосте.

0 голосов
/ 25 апреля 2020

Если вы зайдете на официальную страницу HAproxy на DockerHub , вы увидите, что вам нужно ввести haproxy.cfg в путь /haproxy/. Если нет, HAproxy не может запуститься.

Обратите внимание, что папка / path / to / etc / haproxy вашего хоста должна быть заполнена файлом с именем haproxy.cfg. Если этот файл конфигурации ссылается на любые другие файлы в этой папке, то вы должны убедиться, что они также существуют (например, файлы шаблонов, такие как 400.http, 404.http и т. Д.).

Существует официальная документация HAproxy о haproxy.cfg.

Чтобы продолжить, вам нужно остановить и удалить текущий контейнер:

$ docker stop CONTAINER
$ docker rm CONTAINER

И создать заново.

...