提前通过docker run运行两台Apache镜像
[root@localhost ~]# docker run -it -d --name web1 luojiatian1904/httpd [root@localhost ~]# docker run -it -d --name web2 luojiatian1904/httpd [root@localhost ~]# docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1854792e046f luojiatian1904/httpd "/usr/local/apache/b…" 22 minutes ago Up 22 minutes 80/tcp web2 55a78e08619e luojiatian1904/httpd "/usr/local/apache/b…" 22 minutes ago Up 22 minutes 80/tcp web1
更改web2的访问内容
[root@localhost ~]# docker exec -it 1854792e046f /bin/bash [root@1854792e046f src]# cd /usr/local/apache/htdocs/ [root@1854792e046f htdocs]# vi index.html 123 [root@1854792e046f ~]# /usr/local/apache/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.2.3. Set the 'ServerName' directive globally to suppress this message [root@1854792e046f src]# exit exit [root@localhost ~]# curl 192.168.2.3 123 [root@localhost ~]# curl 192.168.2.4 It works!
在/opt/下创建一个haproxy目录负责存放haproxy的Dockerfile和文件目录
[root@localhost opt]# mkdir -p haproxy/files
编写Dockerfile文件
FROM alpine LABEL MAINTAINER='jtluo [email protected]' ENV version 2.4.0 COPY files /tmp/ RUN ["/bin/sh","-c","/tmp/install.sh"] EXPOSE 80 8189 CMD ["/usr/local/haproxy/sbin/haproxy" ,"-Ws","-f","/etc/haproxy/haproxy.cfg"]
编写install.sh脚本
#!/bin/sh sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories apk update adduser -S -H -s /sbin/nologin haproxy apk add --no-cache -U make gcc pcre-dev bzip2-dev openssl-dev elogind-dev libc-dev dahdi-tools dahdi-tools-dev libexecinfo libexecinfo-dev ncurses-dev zlib-dev zlib cd /tmp/ tar xf haproxy-$version.tar.gz cd haproxy-$version && make TARGET=linux-musl USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 && make install PREFIX=/usr/local/haproxy cp haproxy /usr/sbin/ echo 'net.ipv4.ip_nonlocal_bind = 1' >> /etc/sysctl.conf && echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf mkdir /etc/haproxy cat > /etc/haproxy/haproxy.cfg <> /etc/haproxy/haproxy.cfg < 创建RSs.txt指定RSip
[root@localhost opt]# vim haproxy/files/RSs.txt 192.168.2.3 192.168.2.4通过Dockerfile构建镜像
[root@localhost haproxy]# docker build -t luojiatian1904/haproxy:alpine . Removing intermediate container 88adffe6b5fa ---> f98d1403450b Successfully built f98d1403450b Successfully tagged luojiatian1904/haproxy:apline通过镜像构建容器
[root@localhost opt]# docker run -d --name haproxy -p 80:80 -p 8189:8189 luojiatian1904/haproxy:latest 10ec98a57295730bf58136e583e04f1b4824323abb2771d3791063ddf72950b9 [root@localhost opt]# docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 67538d318390 luojiatian1904/httpd "/usr/local/apache/b…" 3 minutes ago Up 3 minutes 80/tcp web2 0da2f785d283 luojiatian1904/httpd "/usr/local/apache/b…" 3 minutes ago Up 3 minutes 80/tcp web1 10ec98a57295 luojiatian1904/haproxy:apline "/usr/local/haproxy/…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8189->8189/tcp, :::8189->8189/tcp haproxy [root@localhost haproxy]# ss -anlt State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*通过浏览器访问宿主机
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)