Haproxy镜像制作、Docker官方镜像仓库及阿里镜像仓库使用(小节9)


highlight: a11y-dark

theme: juejin

Haproxy镜像制作

下载haproxy /opt/dockerfile/web/nginx-ubuntu# docker pull haproxy:2.1.3 进到haproxy容器 /opt/dockerfile/web/nginx-ubuntu# docker run --rm -it haproxy:2.1.3 bash 查看版本:Debian ``` b49633f4394:/# cat /etc/issue Debian GNU/Linux 10 \n \l

退出

b49633f4394:/# exit 创建目录 /opt/dockerfile/web/nginx-ubuntu# cd /opt/dockerfile/web/

基于centos做haproxy镜像

/opt/dockerfile/web# mkdir haproxy-centos

/opt/dockerfile/web# cd haproxy-centos Dockerfile /opt/dockerfile/web/haproxy-centos# vim Dockerfile

FROM centos-base:7.7.1908

维护者信息

LABEL maintainer="stao clark_0932@qq.com"

安装基础命令

RUN yum install -y gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools vim iotop bc zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate

ADD haproxy-2.0.30.tar.gz /usr/local/src/

编译安装

RUN cd /usr/local/src/haproxy-2.0.30 && make ARCH=x8664 TARGET=linux-glibc USEPCRE=1 USEOPENSSL=1 USEZLIB=1 USESYSTEMD=1 USECPU_AFFINITY=1 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && cp haproxy /usr/sbin/ && mkdir /usr/local/haproxy/run

ADD haproxy.cfg /etc/haproxy/

ADD runhaproxy.sh /usr/bin/runhaproxy.sh EXPOSE 80 9999 CMD ["/usr/bin/run_haproxy.sh"] 上传文件 [haproxy-2.0.30.tar.gz](https://share.weiyun.com/hfQ5B43O)、HAproxy官网(www.haproxy.org) /opt/dockerfile/web/haproxy-centos# ll total 2680 drwxr-xr-x 2 root root 4096 Dec 27 01:18 ./ drwxr-xr-x 8 root root 4096 Dec 27 01:08 ../ -rw-r--r-- 1 root root 341 Dec 27 01:18 Dockerfile -rw-r--r-- 1 root root 2728444 Dec 27 01:18 haproxy-2.0.30.tar.gz haproxy.cfg /opt/dockerfile/web/haproxy-centos# cat haproxy.cfg global chroot /usr/local/haproxy

stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin

uid 99 gid 99 daemon nbproc 1 pidfile /usr/local/haproxy/run/haproxy.pid log 127.0.0.1 local3 info

defaults option http-keep-alive option forwardfor mode http timeout connect 300000ms timeout client 300000ms timeout server 300000ms

listen stats mode http bind 0.0.0.0:9999 stats enable log global stats uri /haproxy-status stats auth haadmin:123456

listen webport bind 0.0.0.0:80 mode http log global balance roundrobin server web1 192.168.37.101:8080 check inter 30000 fall 2 rise 5 server web2 192.168.37.102:8080 check inter 30000 fall 2 rise 5 /opt/dockerfile/web/haproxy-centos# vim runhaproxy.sh

!/bin/bash

/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

tail -f /etc/hosts 添加权限 /opt/dockerfile/web/haproxy-centos# chmod a+x run_haproxy.sh /opt/dockerfile/web/haproxy-centos# docker build -t haproxy:2.0.30-centos . ```

```

进入容器

/opt/dockerfile/web/haproxy-centos# docker run -it -p 80:80 -p 9999:9999 haproxy:2.0.30-centos 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 c060e66a25cb ```

图片.png

图片.png

新窗口 ``` ~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE haproxy 2.0.30-centos 323abdc0063a 7 minutes ago 962MB nginx 1.18.0-ubuntu 2dea393466ff 19 hours ago 384MB nginx 1.18.0-alpine c7f50cb1e0ed 20 hours ago 245MB nginx-v1 1.18.0-alpine 8e8dc97f717b 34 hours ago 241MB tomcat-linux00 app2 36429591d7cf 36 hours ago 1.02GB tomcat-linux00 app1 c7577cde6aff 37 hours ago 1.02GB centos-tomcat 8.5.51 2adbba39b781 37 hours ago 1GB centos-jdk 8u351 932a0c002b15 37 hours ago 988MB centos-base 7.7.1908 08fec43ccc9f 45 hours ago 612MB ubuntu 18.04 251b86c83674 2 weeks ago 63.1MB alpine latest 49176f190c7e 4 weeks ago 7.05MB haproxy 2.1.3 7dd3479a7f03 2 years ago 92.5MB centos 7.7.1908 08d05d1d5859 3 years ago 204MB

运行容器

~# docker run -d -it -p 8080:8080 tomcat-linux00:app1 dc688ed375254966380849508e3be6c1e7dca5deadfbf7a3b166040f425b8f92 再次启动服务 /opt/dockerfile/web/haproxy-centos# docker run -it -p 80:80 -p 9999:9999 haproxy:2.0.30-centos 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 38956d87a4c0 ```

图片.png

图片.png

把linux00:app2打包、并拷贝到102 ``` /opt/dockerfile/web/haproxy-centos# docker save tomcat-linux00:app2 > /opt/app2.tar.gz

/opt/dockerfile/web/haproxy-centos# scp /opt/app2.tar.gz 192.168.37.102:/opt/ ``` 102

导入镜像 ~# docker load -i /opt/app2.tar.gz

~# docker run -d -it -p 8080:8080 tomcat-linux00:app2

图片.png

图片.png

101

~# cd /opt/dockerfile/web/nginx-alpine/

``` /opt/dockerfile/web/nginx-alpine# vim nginx.conf ··· upstream tomcat { server 192.168.37.101:8080; server 192.168.37.102:8080; }

server {

下面信息要写到server中

location /linux00 {
        proxy_pass   http://tomcat;
    }

··· ```

/opt/dockerfile/web/nginx-alpine# bash build-command.sh /opt/dockerfile/web/nginx-alpine# docker run -d -it -p 81:80 nginx:1.18.0-alpine

图片.png

图片.png

图片.png

再次把镜像导出、拷贝到102 /opt/dockerfile/web/nginx-alpine# docker save nginx:1.18.0-alpine > /opt/nginx.tar.gz /opt/dockerfile/web/nginx-alpine# scp /opt/nginx.tar.gz 192.168.37.102:/opt/ 102

导入 ~# docker load -i /opt/nginx.tar.gz

~# docker run -d -it -p 81:80 nginx:1.18.0-alpine 101 ``` /opt/dockerfile/web/haproxy-centos# pwd /opt/dockerfile/web/haproxy-centos

/opt/dockerfile/web/haproxy-centos# cat haproxy.cfg ···

修改以下两行、端口号即可

server web1 192.168.37.101:81 check inter 30000 fall 2 rise 5 server web2 192.168.37.102:81 check inter 30000 fall 2 rise 5 ··· ```

``` /opt/dockerfile/web/haproxy-centos# vim build-command.sh

!/bin/bash

docker build -t haproxy:2.0.30-centos . ```

/opt/dockerfile/web/haproxy-centos# bash build-command.sh /opt/dockerfile/web/haproxy-centos# docker run -it -p 80:80 haproxy:2.0.30-centos 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 68d3043ae032 此时访问可以80端口

图片.png

图片.png

图片.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值