基于dockerfile构建nginx镜像

1Dockerfile构建nginx镜像

构建工作目录

 cd /etc/yum.repos/

wget http://192.168.88.2/CentOS-Base.repo  挂载镜像 (这样就不需要网络下载了)

《1》:mkdir nginx  创建目录

《2》:cd nginx/  切换目录

《3》:vim run.sh 编写文件(用来启用nginx的)

《4》:写入:

#  /bin/bash

/usr/local/nginx/sbin/nginx

《5》:rz   上传nginx的软件包

《6》:vim Dockerfile   编辑文件

《7》:写入

FROM centos:7

MAINTAINER Crushlinux 

RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel

ADD nginx-1.18.0.tar.gz /usr/src

RUN cd /usr/src/nginx-1.18.0 && ./configure --prefix=/usr/local/nginx && make && make install

EXPOSE 80

RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

ADD run.sh /run.sh

RUN chmod 775 /run.sh

CMD ["/run.sh"]

基于dockerfile构建nginx镜像_第1张图片

注:以下是用网络下载的:

#设置基础镜像

FROM centos:7

#维护该镜像的用户信息

MAINTAINER The CentOS Project

#安装相关依赖包

RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel

#下载并解压 Nginx 源码包

RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz

RUN tar zxf nginx-1.9.7.tar.gz

#编译安装 nginx

WORKDIR nginx-1.9.7

RUN ./configure --prefix=/usr/local/nginx && make && make install

#开启 80 和 443 端口

EXPOSE 80

EXPOSE 443

#修改 Nginx 配置文件,以非 daemon 方式启动

RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

#复制服务启动脚本并设置权限

WORKDIR /root/nginx

ADD run.sh /run.sh

RUN chmod 775 /run.sh

#启动容器时执行脚本

CMD ["/run.sh"]

《7》:docker build -t nginx:new  执行

以下说明报错了。

基于dockerfile构建nginx镜像_第2张图片

解决方法:

<1>:vim /etc/sysconfig/network-scritps/ifcfg-ens33 编辑网卡

<2>:写入dns 地址 DNS=8.8.8.8

<3>:重启网卡,重启docker容器即可

<4>:在去执行命令,以下说明安装成功

基于dockerfile构建nginx镜像_第3张图片

《8》:docker images 

基于dockerfile构建nginx镜像_第4张图片

《9》:docker run -itd -p 66:80 nginx

《10》:netstat -lnpt |grep 66 查看端口

《10》:访问

基于dockerfile构建nginx镜像_第5张图片

注:当容器和端口起不来,建议考虑考虑镜像的问题,或者是创建容器的时候

你可能感兴趣的:(容器,nginx,centos,linux,docker)