一、准备脚本和Dockerfile

yum install -y zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make

mkdir -p /nginx

tar -xf nginx-1.23.1.tar.gz

cd nginx-1.23.1

./configure --prefix=/usr/local/nginx --with-threads --with-http_ssl_module --with-http_stub_status_module --with-stream

make

make install


Dockerfile文件内容:

FROM my-vm-reg.docker.test.com/centos6u2.applet:latest

ENV NGINX_VERSION 1.23.1

ENV PATH=/usr/local/nginx/sbin:$PATH

LABEL maintainer="harry<123456789@qq.com>"

RUN mkdir /nginx

COPY . /nginx

WORKDIR /nginx

RUN set -ex; \

bash install_nginx.sh

EXPOSE 80

STOPSIGNAL SIGQUIT

CMD ["nginx","-g","daemon off;"]


二、制作基础OS镜像

1、制作基础镜像

#docker images|grep centos

#docker tag a19baeae6ba6 my-vm-reg.docker.test.com/centos6u2.applet:latest


2、上传到镜像中心,便于构建镜像的服务器可以正常下载到基础OS镜像

#docker push my-vm-reg.docker.test.com/centos6u2.applet:latest


三、构建镜像过程

1、找一台可以正在执行install_nginx.sh脚本的机器,下载对应的centos镜像

#docker login my-vm-reg.docker.test.com

Username: TEST

Password: PASSWORD


2、下载基础镜像

#docker pull my-vm-reg.docker.test.com/centos6u2.applet:latest


3、这3个文件放在/root/下

Dockerfile  install_nginx.sh  nginx-1.23.1.tar.gz


4、执行构建命令

# docker build -f Dockerfile  -t harry/nginx:v1.23.1 .

# docker images | grep nginx

改名

# docker tag 0b9da1b28e59 my-vm-reg.docker.test.com/aoppp/nginx:v003


四、启动镜像

#docker run -d -p 4477:80 --name test001 harry/nginx:v1.23.1

474b69d4924690a6867d3e626a9600a85786a4980084ced0d30025513270062e

# docker container ls |grep harry

# docker exec -it 474b69d4 bash


参考:https://blog.csdn.net/weixin_47872288/article/details/120119953