一、准备脚本和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