I'm trying to run haproxy on a docker, but it doesn't work.
1-I create haproxy.cfg under /etc/haproxy/haproxy.cfg:
global log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults mode tcp log global retries 3 timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s maxconn 3000
listen stats mode http bind *:7000 stats enable stats uri /
listen cluster_pgdocker bind *:5000 option httpchk http-check expect status 200 default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions server pg_node1 192.168.154.243:5432 maxconn 1000 check port 8008 server pg_node2 192.168.154.245:5432 maxconn 1000 check port 8008
2-then I create my Dockerfile under /etc/haproxy/:
FROM haproxy:2.3 COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg RUN mkdir --parents /var/lib/haproxy && chown -R haproxy:haproxy /var/lib/haproxy RUN mkdir /var/haproxy
3- Then I execute this command for create an image: docker build -t my-haproxy . 4- docker images: my-haproxy latest d40f9f668bf9 4 seconds ago 99.3MB haproxy 2.3 2739ba6dea2e 3 days ago 99.3MB
5- then I run this image for execute a container:docker run -d --name haproxy -p 7000:7000 my-haproxy:
a6675ebf4437c4eda0d3f120826dd19cee66418926036488e88bfc84896b2cf9 docker: Error response from daemon: driver failed programming external connectivity on endpoint haproxy (7025d8dc3dedcd1c8dcc2da067837639504bec52deadb33d639cd0ba54bc7e05): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 7000 -j DNAT --to-destination 172.17.0.2:7000 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1)).
Please Can you help me and thanks for your support.