前提
参考此文档安装完成即可 ubuntu二进制安装docker及docker info介绍(小节1)
DockerFile 制作 yum 版 nginx 镜像
DockerFile 可以说是一种可以被Docker程序解释的脚本,DockerFile是由一条的命令组成的,每条命令对应linux下面的一条命令,Docker程序将这些DockerFile指令在翻译成真正的linux命令,其有自己的书写方式和支持的命令,Docker程序读取DockerFile并根据指令生成Docker镜像,相比手动制作镜像的方式,DockerFile更能直观的展示镜像是怎么产生的,有了DockerFile,当后期有额外的需求时,只有在之前的DockerFile添加或者修改响应的命令即可重新生成新的Docker镜像,避免了重复手动制作镜像的麻烦,具体如下:
~# mkdir -pv /opt/dockerfile/nginx
~# cd /opt/dockerfile/nginx
/opt/dockerfile/nginx# vim Dockerfile
#Docker image for nginx
#
#
FROM centos:7.7.1908
#维护者信息
LABEL maintainer="stao <clark_0932@qq.com>"
ENV password 123456
#安装某些包
RUN yum install -y epel-release && yum install -y zip unzip vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
#wget http://nginx.org/download/nginx-1.18.0.tar.gz
ADD nginx-1.18.0.tar.gz /usr/local/src
#编译安装、且指定安装路径、删除包
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install && rm -rf nginx-1.18.0
ADD static.zip /apps/nginx/html
#解压缩后删除解压缩
RUN cd /apps/nginx/html && unzip static.zip && rm -rf static.zip
EXPOSE 80 443
CMD ["/apps/nginx/sbin/nginx","-g","daemon off;"]
/opt/dockerfile/nginx# wget http://nginx.org/download/nginx-1.18.0.tar.gz
/opt/dockerfile/nginx# mkdir static
/opt/dockerfile/nginx# cd static
#下载图片
/opt/dockerfile/nginx/static# wget https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
#改名
/opt/dockerfile/nginx/static# mv PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png 123.png
/opt/dockerfile/nginx/static# cd ..
/opt/dockerfile/nginx# pwd
/opt/dockerfile/nginx
/opt/dockerfile/nginx# apt update
/opt/dockerfile/nginx# apt install -y zip unzip
/opt/dockerfile/nginx# zip static.zip static/*
/opt/dockerfile/nginx# cp static.zip /tmp/
/opt/dockerfile/nginx# cd /tmp/
/tmp# unzip static.zip
#目录切换回去
/tmp# cd -
/opt/dockerfile/nginx
/opt/dockerfile/nginx# rm static/ -rf
测试
/opt/dockerfile/nginx# docker build -t nginx:v1 .
/opt/dockerfile/nginx# docker run -it -p 8810:80 nginx:v1
页面测试