Nginx 版本为1.21,支持lua和动态负载均衡,安装了lua-nginx-module、ngx_devel_kit、nginx-upsync-module模块。
385
该镜像以centos7为基础,安装了Nginx1.21,同时为了实现Nginx动态负载均衡和支持lua,额外安装了lua-nginx-module、ngx_devel_kit、nginx-upsync-module三个模块,并编译完成了LuaJIT。
也就是说如果是为了Nginx配合Lua使用,或者Nginx配合Consul做动态负载均衡,该镜像均可以满足条件。
# 下载镜像
docker pull haveyb/nginx
# 重命名镜像
docker tag docker.io/haveyb/nginx nginx1.21
# 只保留重命名后的镜像
docker rmi docker.io/haveyb/nginx
docker volume create --name=nginx1.21_volume
docker run -itd --name nginx1.21 -p 81:80 -v nginx1.21_volume:/etc/nginx nginx1.21
注:这里之所以使用数据卷的原因,是因为如果直接映射目录,会出问题
docker exec -it nginx1.21 bash
1、Nginx安装位置为/etc/nginx
2、nginx.conf 配置文位于 /etc/nginx/conf/nginx.conf
3、创建容器成功后,nginx会自动启动,不用额外再用systemctl start nginx这种命令启动了
4、该容器的目录映射为:宿主机的/var/lib/docker/volumes/nginx1.21_volume/_data/ 映射到容器内的 /etc/nginx/
[root@v1 _data]# docker volume inspect nginx1.21_volume
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nginx1.21_volume/_data",
"Name": "nginx1.21_volume",
"Options": {},
"Scope": "local"
}
]
docker volume prune
FROM centos:7
# 安装相关依赖
RUN yum install -y gcc gcc-c++ glibc autoconf automake make openssl openssl-devel pcre lua-devel unzip zip sudo ncurses
## 下载Nginx
#ADD http://nginx.org/download/nginx-1.21.3.tar.gz /tmp
## 下载LuaJIT
#ADD https://github.com/LuaJIT/LuaJIT/archive/v2.1.tar.gz /usr/local/src
## 下载ngx_devel_kit(NDK)模块
#ADD https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz /usr/local/src
## 下载lua-nginx-module 模块
#ADD https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz /usr/local/src
## 下载nginx-upsync-module 模块
#ADD https://github.com/weibocom/nginx-upsync-module/archive/refs/heads/master.zip /usr/local/src
# 由于网速问题,所有安装包改为由本地上传
COPY ./nginx-1.21.3.tar.gz /tmp/nginx-1.21.3.tar.gz
COPY ./ngx_devel_kit-0.3.0.tar.gz /usr/local/src/ngx_devel_kit-0.3.0.tar.gz
COPY ./LuaJIT-2.1.tar.gz /usr/local/src/LuaJIT-2.1.tar.gz
COPY ./nginx-upsync-module-master.zip /usr/local/src/nginx-upsync-module-master.zip
COPY ./v0.10.13.tar.gz /usr/local/src/v0.10.13.tar.gz
# 解压安装包
RUN cd /tmp \
&& tar -xvf /tmp/nginx-1.21.3.tar.gz \
&& cd /usr/local/src \
&& tar -xvf LuaJIT-2.1.tar.gz \
&& tar -xvf ngx_devel_kit-0.3.0.tar.gz \
&& tar -xvf v0.10.13.tar.gz \
&& unzip nginx-upsync-module-master.zip
# 编译LuaJIT
RUN cd /usr/local/src/LuaJIT-2.1 \
&& make \
&& make install PREFIX=/usr/local/LuaJIT \
&& sudo ln -sf luajit-2.1.0-beta3 /usr/local/bin/luajit
#编译安装Nginx
RUN useradd -M -s /sbin/nologin nginx \
&& cd /tmp/nginx-1.21.3 \
&& ./configure \
--prefix=/etc/nginx \
--user=nginx --group=nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail --with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--add-module=/usr/local/src/lua-nginx-module-0.10.13 \
--add-module=/usr/local/src/ngx_devel_kit-0.3.0 \
--add-module=/usr/local/src/nginx-upsync-module-master \
&& make \
&& make install \
&& rm -rf /tmp/*
# 开放端口
EXPOSE 80 443
# 自动启动Nginx
ENV PATH /etc/nginx/sbin:$PATH
CMD ["nginx","-g","daemon off;"]
Content type
Image
Digest
Size
188.5 MB
Last updated
about 5 years ago
docker pull haveyb/nginx