Dockerfile制作编译安装nginx的镜像

Dockerfile制作编译安装nginx的镜像

文章目录

  • Dockerfile制作编译安装nginx的镜像
    • dockerfile制作编译安装

dockerfile制作编译安装

  • 创建nginx目录
mkdir nginx
#创建nginx的目录
  • 进入nginx目录
cd nginx
#进入到nginx目录
  • 编辑dockerfile文件
vim Dockerfile
#编辑Dockerfile
FROM centos:7
#指向centos7的基础镜像
RUN yum -y update
#更新yum源
RUN yum -y install pcre-devel zlib-devel make gcc gcc-c++
#安装nginx的编译安装环境
RUN useradd -M -s /sbin/nologin nginx
#创建nginx的程序型用户
ADD nginx-1.12.2.tar.gz /opt/
#将nginx-1.12.2.tar.gz到/opt目录下面
WORKDIR /opt/nginx-1.12.2
#指定当前环境的目录
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
#编译安装nginx
RUN make && make install
#编译成二进制文件
RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#创建软连接
ENV PATH /usr/local/nginx/sbin:$PATH
#配置当前的环境变量
EXPOSE 80
#开放容器的80端口
EXPOSE 443
#开放容器的443端口
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
#关闭nginx的守护进程
WORKDIR /root/nginx
#指定当前的路径为/root/nginx
ADD run.sh /run.sh
#从宿主机复制run.sh到当前容器里面的/run.sh的脚本
RUN chmod 755 /run.sh
#赋予脚本权限
CMD ["/run.sh"]
#开启容器的时候执行的脚本

vim run.sh
#编辑启动容器的脚本
#!/bin/bash
/usr/local/nginx/sbin/nginx
  • 将nginx-1.12.2.tar.gz复制到和Dockerfile的一样的目录
  • 创建nginx:new的镜像
docker build -t nginx:new .
#创建nginx:new的镜像
  • 运行容器
docker run -d -P nginx:new
#运行容器的时候随机指定端口
docker ps -a
#查看容器的端口指向
  • 测试
在浏览器中输入:IP地址:端口

你可能感兴趣的:(docker)