docker--创建nginx镜像
·
一.docker构建镜像的方法: commit、dockerfile
1、使用commit来构建镜像:
commit是基于原有镜像基础上构建的镜像,使用此方法构建镜像的目的:保存镜像里的一些配置信息和修改的信息。相当于一个镜像的快照。
2、使用dockerfile来构建镜像:
dockerfile是快速构建所需(自定义)镜像。
二.构建nginx镜像:当网上仓库下载的镜像没有你用的插件等,且交付运行下合某应用没有下载等等等功能极简命令模式,是时候自己弄一个镜像玩玩了
这里centos的可能最新,先来一波解释 ,下面直接代码无解释
mkdir mynginx
cd mynginx/
wget http://nginx.org/download/nginx-1.16.0.tar.gz #创建目录--下载应用--编辑
vi Dockerfile
FROM centos
#FROM:指定基础镜像(FROM是必备的指令,并且必须为第一条指令)
RUN yum -y install gcc make openssl-devel pcre pcre-devel zlib-devel tar zlib
#RUN: 用来执行命令行命令。其基本格式:
#shell格式: RUN <命令> ,输入在bash环境中的命令即可,一个dockerfile允许使用RUN不得超过127层,所以,使用一次RUN, 使用 ‘ \ ’ 换行,使用‘ && ’执行下一条命令。一般使用此种格式;
#exec格式: RUN <"可执行文件", "参数1", "参数2">,此种方式像是函数调用中的格式;
#这句yum安装依赖等
ADD nginx-1.16.0.tar.gz /usr/src/
#ADD: 更高级的复制文件,在COPY的基础上增加了一些功能,如果复制的是压缩包的话,会直接解压,而不需要在使用RUN解压;
RUN cd /usr/src/nginx-1.16.0 \
&& mkdir /usr/local/nginx \
&& ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module \
&& make && make install \
&& ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ \
&& sed -i '1i\daemon off;' /usr/local/nginx/conf/nginx.conf \
&& nginx
#这个run大体意思就是选择路径编译安装创建快捷方式
#&& sed -i '1i\daemon off;' /usr/local/nginx/conf/nginx.conf \
#这一句是禁止后台运行,nginx默认后台运行,docker不支持后台运行,
RUN rm -rf /usr/src/nginx-1.16.0
EXPOSE 80
#暴露80端口
CMD ["nginx"]
#启动nginx
再附加几个常用的
ENV: 设置环境变量。(都可以使用这里使用的变量)其基本格式:
格式1:ENV <key> <value>
格式2:ENV <key1>=<value1> <key2>=<value>...
VOLUME: 定义匿名卷。 其基本格式:
格式1: VOLUME ["<路径1>", "<路径2>"...]
格式2: VOLUME <路径>
FROM centos
RUN yum -y install gcc make openssl-devel pcre pcre-devel zlib-devel tar zlib
ADD nginx-1.16.0.tar.gz /usr/src/
RUN cd /usr/src/nginx-1.16.0 \
&& mkdir /usr/local/nginx \
&& ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module \
&& make && make install \
&& ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ \
&& sed -i '1i\daemon off;' /usr/local/nginx/conf/nginx.conf \
&& nginx -V
RUN rm -rf /usr/src/nginx-1.16.0
EXPOSE 80
EXPOSE 443
CMD ["nginx"]
docker build -t nginx:v3 .
#构建 nginx是名字,v3版本号可以随便v100都行
docker run -d -p 80:80 --name nginx nginx:v3
更多推荐
所有评论(0)