欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像

 更新時間:2023年05月30日 08:42:51   作者:slyybw  
這篇文章主要介紹了Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Dockerfile目錄結(jié)構(gòu)

[root@localhost ~]# tree haproxy_alpinelinux/
haproxy_alpine/
├── Dockerfile
└── files
    ├── haproxy-2.4.0.tar.gz
    ├── haproxycfg.sh
    ├── install.sh
    └── sysctl.conf
1 directory, 5 files

拉取alpine鏡像

[root@localhost ~]# 
[root@localhost ~]# docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300
Status: Image is up to date for alpine:latest
docker.io/library/alpine:latest
[root@localhost ~]# docker images
REPOSITORY         TAG       IMAGE ID       CREATED          SIZE
alpine             latest    c059bfaa849c   2 weeks ago      5.59MB

Dockerfile文件內(nèi)容

[root@localhost ~]# cat haproxy_alpine/Dockerfile 
FROM alpine
LABEL MAINTAINER "syblyw0806 1234567890@qqq.com"
ENV version 2.4.0
ADD files/haproxy-${version}.tar.gz /opt/
ADD files/install.sh /opt/
ADD files/haproxycfg.sh /opt/
ADD files/sysctl.conf /opt/
RUN /opt/install.sh
ENTRYPOINT /opt/haproxycfg.sh

安裝haproxy的腳本

[root@localhost ~]# cat haproxy_alpine/files/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
addgroup 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 /opt/haproxy-${version}
make TARGET=linux-musl USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 
make install PREFIX=/usr/local/haproxy
cp haproxy  /usr/sbin/
mkdir /etc/haproxy
apk del gcc make
rm -rf /opt/haproxy-${version}/ /opt/install.sh

haproxy配置文件

[root@localhost ~]# cat haproxy_alpine/files/haproxycfg.sh 
#!/bin/sh
cat > /etc/haproxy/haproxy.cfg <<EOF
#--------------????----------------
global
    log 127.0.0.1 local0  info
    #log loghost local0 info
    maxconn 20480
#chroot /usr/local/haproxy
    pidfile /var/run/haproxy.pid
    #maxconn 4000
    user haproxy
    group haproxy
    daemon
#---------------------------------------------------------------------
#common defaults that all the 'listen' and 'backend' sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode http
    log global
    option dontlognull
    option httpclose
    option httplog
    #option forwardfor
    option redispatch
    balance roundrobin
    timeout connect 10s
    timeout client 10s
    timeout server 10s
    timeout check 10s
    maxconn 60000
    retries 3
#--------------??????------------------
listen admin_stats
    bind 0.0.0.0:8189
    stats enable
    mode http
    log global
    stats uri /haproxy_stats
    stats realm Haproxy\ Statistics
    stats auth admin:admin
    #stats hide-version
    stats admin if TRUE
    stats refresh 30s
#---------------web??-----------------------
listen webcluster
    bind 0.0.0.0:80
    mode http
    #option httpchk GET /index.html
    log global
    maxconn 3000
    balance roundrobin
    cookie SESSION_COOKIE insert indirect nocache
EOF
count=1
for rs_ip in $RSs;do
cat >> /etc/haproxy/haproxy.cfg <<EOF
    server web$count $rs_ip:80 check inter 2000 fall 5
EOF
let count++
done
haproxy -f  /etc/haproxy/haproxy.cfg -db

sysctl.conf

[root@localhost ~]# cat haproxy_alpine/files/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1

構(gòu)建鏡像

[root@localhost ~]# docker build -t haproxy:v3.0 haproxy_alpinelinux/
Sending build context to Docker daemon  3.602MB
Step 1/9 : FROM alpine
 ---> c059bfaa849c
Step 2/9 : LABEL MAINTAINER "syblyw0806 1234567890@qqq.com"
 ---> Using cache
 ---> bbfbe82a7f48
Step 3/9 : ENV version 2.4.0
 ---> Using cache
 ---> dccb41beb82b
Step 4/9 : ADD files/haproxy-${version}.tar.gz /opt/
 ---> Using cache
 ---> 856cb1d8e0de
Step 5/9 : ADD files/install.sh /opt/
 ---> 589a939efe69
Step 6/9 : ADD files/haproxycfg.sh /opt/
 ---> 37bd73459586
Step 7/9 : ADD files/sysctl.conf /opt/
 ---> be1b5cd53414
Step 8/9 : RUN /opt/install.sh
 ---> Running in 6fd54c54e040
 Removing intermediate container 6fd54c54e040
 ---> e1bf872ca416
Step 9/9 : ENTRYPOINT /opt/haproxycfg.sh
 ---> Running in 89515ad8dc41
Removing intermediate container 89515ad8dc41
 ---> 4f4d41c2eebb
Successfully built 4f4d41c2eebb
Successfully tagged haproxy:v3.0
[root@localhost ~]# docker images
REPOSITORY         TAG       IMAGE ID       CREATED             SIZE
haproxy            v3.0      4f4d41c2eebb   About an hour ago   83.8MB

啟動容器

[root@localhost ~]# docker run -d --name haproxy_alpinelinux -p 1234:80 -e RSs="172.17.0.2 172.17.0.3" haproxy:v3.0
// 啟動一個httpd容器和一個nginx容器
be589a4d9689427ec0810c2f2b28aa59dd4bba425590f0277b4e4f82d3b973e8
[root@localhost ~]# docker run -d --name httpd syblyw0806/httpd:v2.0 
0706632d35fbf02807c5668cae27fc8d3fe3406f198dff5988370c688c630b5b
[root@localhost ~]# docker run -d --name nginx nginx
80ccbde27a8e0d5545b8422f809c9b09f178bff7a20d5bc194925bd707a34af7
[root@localhost ~]# docker exec -it haproxy_alpinelinux /bin/sh
/ # ss -anlt     // 這里如果沒有ss命令,需要安裝iproute2這個包
State         Recv-Q        Send-Q                Local Address:Port                 Peer Address:Port        Process        
LISTEN        0             128                         0.0.0.0:8189                      0.0.0.0:*                          
LISTEN        0             128                         0.0.0.0:80                        0.0.0.0:*                          
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED              STATUS              PORTS                                   NAMES
be589a4d9689   haproxy:v3.0            "/bin/sh -c /opt/hap…"   About a minute ago   Up About a minute   0.0.0.0:1234->80/tcp, :::1234->80/tcp   haproxy_alpinelinux
80ccbde27a8e   nginx                   "/docker-entrypoint.…"   10 minutes ago       Up 10 minutes       80/tcp                                  nginx
0706632d35fb   syblyw0806/httpd:v2.0   "/usr/local/apache/b…"   10 minutes ago       Up 10 minutes       80/tcp                                  httpd

訪問測試

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker安裝openjdk并運(yùn)行jar包的操作方法

    docker安裝openjdk并運(yùn)行jar包的操作方法

    這篇文章主要介紹了docker安裝openjdk并運(yùn)行jar包的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 如何使用docker部署lnmp多站點(diǎn)

    如何使用docker部署lnmp多站點(diǎn)

    本文給大家介紹如何使用docker部署lnmp多站點(diǎn),創(chuàng)建一個 Docker 網(wǎng)絡(luò)以便容器可以在同一網(wǎng)絡(luò)上進(jìn)行通信,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-10-10
  • docker 復(fù)制容器的實現(xiàn)步驟

    docker 復(fù)制容器的實現(xiàn)步驟

    本文主要介紹了docker 復(fù)制容器的實現(xiàn)步驟,主要介紹了三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Docker搭建MySQ主從復(fù)制原理

    Docker搭建MySQ主從復(fù)制原理

    這篇文章主要介紹了Docker搭建MySQ主從復(fù)制原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 基于Docker版本squid搭建代理服務(wù)器的過程詳解

    基于Docker版本squid搭建代理服務(wù)器的過程詳解

    這篇文章主要介紹了基于Docker版本squid搭建代理服務(wù)器的配置方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下本文給大家介紹的非常詳細(xì)
    2024-03-03
  • 如何通過Docker容器創(chuàng)建一個Web服務(wù)器

    如何通過Docker容器創(chuàng)建一個Web服務(wù)器

    這篇文章主要介紹了如何通過Docker容器創(chuàng)建一個Web服務(wù)器的相關(guān)資料,并對Nginx進(jìn)行基本配置和測試,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Docker定制容器鏡像的2種方法(推薦)

    Docker定制容器鏡像的2種方法(推薦)

    本篇文章主要介紹了Docker定制容器鏡像的2種方法(推薦),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 防火墻控制Docker端口開放與關(guān)閉

    防火墻控制Docker端口開放與關(guān)閉

    本文主要介紹了防火墻控制Docker端口開放與關(guān)閉,通過實例演示了如何配置防火墻規(guī)則來實現(xiàn)對Docker端口的控制,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • docker刪除鏡像的實現(xiàn)方式詳解

    docker刪除鏡像的實現(xiàn)方式詳解

    這篇文章主要為大家介紹了docker刪除鏡像的實現(xiàn)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • docker搭建本地私有倉庫的實現(xiàn)

    docker搭建本地私有倉庫的實現(xiàn)

    有時候使用Docker Hub這樣的公共倉庫可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個本地倉庫供私人使用,本文主要介紹了docker搭建本地私有倉庫的實現(xiàn),感興趣的可以了解一下
    2023-12-12

最新評論