通过Dockerfile文件构建镜像

本文通过构建Nginx镜像,示例如何通过Dockerfile文件构建镜像。

目录

一、创建一个目录

二、编写Dockerfile文件

三、构建镜像

四、使用构建成功的镜像创建容器

五、测试


一、创建一个目录

创建目录的目的,用于区分不同镜像的构建。相当于工作空间。

[root@localhost install]# mkdir nginx_build
[root@localhost install]# cd nginx_build/
[root@localhost nginx_build]# pwd
/install/nginx_build

二、编写Dockerfile文件

在/install/nginx_build目录下创建Dockerfile文件,内容如下:

# pull down centos image。指定centos7,centos8版本安装nginx报错error: 'struct crypt_data' has no member named 'current_salt'
FROM centos:7
MAINTAINER Jack 1181120299@qq.com

# install nginx
RUN useradd  www -u 1200 -M -s /sbin/nologin
RUN mkdir -p /install
RUN yum install -y make automake autoconf libtool cmake pcre pcre-devel openssl openssl-devel gd-devel \
    zlib-devel gcc gcc-c++ net-tools iproute telnet wget curl &&\
    yum clean all && \
    rm -rf /var/cache/yum/*

WORKDIR /install
RUN wget http://nginx.org/download/nginx-1.9.9.tar.gz
RUN tar -xzvf ./nginx-1.9.9.tar.gz
WORKDIR nginx-1.9.9
RUN ./configure --prefix=/opt/nginx --with-http_image_filter_module --user=www --group=www \
    --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module

# 解决nginx switch语句没有加break的warning。make时不要将warn认为是error。否则make失败
RUN sed -i 's/-Werror//g' ./objs/Makefile

RUN make && make install
RUN chown -R www.www /opt/nginx
ENV LOG_DIR /opt/nginx
ENV PATH $PATH:/opt/nginx/sbin


ENTRYPOINT /opt/nginx/sbin/nginx && tail -f /opt/nginx/logs/access.log

三、构建镜像

在/install/nginx_build目录下构建镜像。

[root@localhost nginx_build]# docker build -t jack_nginx -f ./Dockerfile ./

-t 指定镜像的名称,如果要指定版本,采用 image:tag 的写法。

-f 指定Dockerfile文件,默认当前文件夹下的Dockerfile。

最后的./指在当前文件夹下编译。

四、使用构建成功的镜像创建容器

docker run -itd --name nginx_container -p 8899:80 jack_nginx /bin/bash

五、测试

访问宿主机的8899端口,返回nginx欢迎页。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值