dockerfile構(gòu)建haproxy的詳細(xì)過程(構(gòu)建HAProxy的鏡像)
什么是 Dockerfile?
Dockerfile 是一個(gè)文本文件,包含了構(gòu)建 Docker 鏡像的所有指令。
Dockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。
通過定義一系列命令和參數(shù),Dockerfile 指導(dǎo) Docker 構(gòu)建一個(gè)自定義的鏡像。
1. 結(jié)構(gòu)目錄
[root@localhost ~]# tree haproxy/
haproxy/
├── dockerfile
└── files
├── haproxy-2.5.0.tar.gz
├── haproxy.cfg
├── install.sh
└── start.sh
1 directory, 5 files
[root@localhost ~]# [root@localhost ~]# cd haproxy/
[root@localhost haproxy]# ls
dockerfile files
[root@localhost haproxy]# cat dockerfile
FROM centos
LABEL MAINTAINER='pengyudong 1@2.com@qq.com'
ENV version 2.5.0
ADD files/haproxy-${version}.tar.gz /usr/src
ADD files/haproxy.cfg /etc/haproxy/
ADD files/install.sh /tmp/
ADD files/start.sh /usr/local/
RUN ["/bin/bash","-c","/tmp/install.sh"]
EXPOSE 80 8189
WORKDIR /usr/local/haproxy
CMD ["/usr/local/start.sh"]
[root@localhost haproxy]#
[root@localhost haproxy]# cd files/
[root@localhost files]# ls
haproxy-2.5.0.tar.gz haproxy.cfg install.sh start.sh
[root@localhost files]# vim start.sh
[root@localhost files]# cat start.sh
#!/bin/sh
/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
/bin/bash
[root@localhost files]# cat install.sh
#!/bin/bash
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$(awk -F'"' 'NR==2{print $2}' /etc/os-release).repo
yum -y install make gcc gcc-c++ pcre-devel bzip2-devel openssl-devel systemd-devel
useradd -r -M -s /sbin/nologin haproxy
cd /usr/src/haproxy-${version}
cd /usr/src/haproxy-${version} && make clean && \
make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_SYSTEMD=1 && \
make install PREFIX=/usr/local/haproxy && \
yum -y remove make gcc gcc-c++ && \
rm -rf /usr/src/haproxy-*
[root@localhost files]# cat haproxy.cfg
#--------------全局配置----------------
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
#--------------統(tǒng)計(jì)頁(yè)面配置------------------
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設(shè)置-----------------------
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
server web01 172.17.0.3:80 check inter 2000 fall 5
server web02 172.17.0.4:80 check inter 2000 fall 5
[root@localhost files]#2. 構(gòu)建鏡像
[root@localhost ~]# docker build -t pengyudong/haproxy:v1.0 haproxy/ root@localhost ~]# docker images pengyudong/haproxy v1.0 8819e319cf32 19 minutes ago 418MB [root@localhost ~]#
3. 創(chuàng)建容器
[root@localhost ~]# docker run -itd --name haproxy -p 8080:80 haproxy:v1.0 [root@localhost ~]# docker exec -it haproxy /bin/bash [root@ce02ae7f027e haproxy]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:80 0.0.0.0:* LISTEN 0 128 0.0.0.0:8189 0.0.0.0:* [root@ce02ae7f027e haproxy]# [root@localhost ~]# docker run -itd --name httpd pengyudong/httpd 462bd9babdcdac7f2abbb6da551858466659602bb3031129bb5b5de6e71853eb [root@localhost ~]# docker run -itd --name nginx nginx 0dffef28f17692db84e93c7caece9fbfe303d66b042bc1f40f13e0304c09227f [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0dffef28f176 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 80/tcp nginx 462bd9babdcd pengyudong/httpd "/usr/local/apache/b…" 8 minutes ago Up 8 minutes 80/tcp httpd ce02ae7f027e pengyudong/haproxy:v1.0 "/usr/bin/start.sh" 22 minutes ago Up 22 minutes 8189/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp haproxy [root@localhost ~]#


到此這篇關(guān)于dockerfile構(gòu)建haproxy的詳細(xì)過程(構(gòu)建HAProxy的鏡像)的文章就介紹到這了,更多相關(guān)dockerfile構(gòu)建haproxy內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Conda環(huán)境創(chuàng)建Docker鏡像的完整步驟指南
Docker是實(shí)現(xiàn)容器化的主流工具之一,而Conda作為科學(xué)計(jì)算和Python的包管理器,與Docker的結(jié)合能為開發(fā)者提供高度靈活、易于管理的開發(fā)環(huán)境,這篇文章主要介紹了使用Conda環(huán)境創(chuàng)建Docker鏡像的完整步驟,需要的朋友可以參考下2025-03-03
Docker系列compose?ymal文件解析學(xué)習(xí)
這篇文章主要介紹了Docker系列之compose?ymal文件解析學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
docker容器映射tcp或udp端口-如何通過docker-compose.yml
這篇文章主要介紹了docker容器映射tcp或udp端口-如何通過docker-compose.yml問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無(wú)法訪問
這篇文章主要介紹了docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無(wú)法訪問的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
通過Docker為本地DeepSeek-r1部署WebUI界面的完整教程
本文詳細(xì)介紹了如何通過Docker安裝并配置OpenWebUI,一個(gè)功能豐富的自托管Web用戶界面,用于與大型語(yǔ)言模型交互,文章步驟包括安裝Docker、配置WSL2、使用dockerrun命令部署OpenWebUI,并提供了詳細(xì)的命令解釋和部署結(jié)果,需要的朋友可以參考下2025-02-02

