dockerfile构建nginx镜像

Dockerfile是一个文本格式的配置文件,用户可以使用dockerfile来快速创建自定义的镜像。

Dockerfile指令说明

分类 指令 说明
配置指令 ARG 定义创建镜像过程中使用的变量
配置指令 FROM 指定镜像创建的基础镜像
配置指令 LABEL 为生成的镜像添加元数据标签信息
配置指令 EXPOSE 声明镜像内服务监听的端口
配置指令 ENV 指定环境变量
配置指令 ENTRYPOINT 指定镜像的默认入口指令
配置指令 VOLUME 创建一个数据卷挂载点
配置指令 USRE 指定容器运行时的用户名和UID
配置指令 WORKDIR 配置工作目录
配置指令 ONBUILD 创建子镜像时指定自动执行的操作指令
配置指令 STOPSIGNAL 指定退出的信号值
配置指令 HEALTHCHECK 配置所启动容器如何进行健康检查
操作指令 RUN 运行指定命令
操作指令 CMD 启动容器时指定默认执行的命令
操作指令 ADD 添加内容到启动镜像
操作指令 COPY 复制内容到镜像

下面我们来使用dockerfile构建一个nginx镜像
1、首先我们拉取一个centos镜像作为我们的基础镜像
dockerfile构建nginx镜像
dockerfile构建nginx镜像

2、创建一个目录存放我们的dockerfile文件

[root@localhost opt]# cd nginx/
[root@localhost nginx]# vim dockerfile
#指定的基础镜像
FROM centos
#添加用户信息
MAINTAINER this is test nginx image
#下载nginx环境包
RUN yum install wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel -y
#下载nginx软件包,并解压
RUN wget http://nginx.org/download/nginx-1.14.2.tar.gz
RUN tar zxvf nginx-1.14.2.tar.gz
#配置工作目录
WORKDIR nginx-1.14.2
RUN ./configure --prefix=/usr/local/nginx && make && make install
#声明http和https的端口
EXPOSE 80
EXPOSE 443
#添加nginx启动脚本到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

3、添加run.sh启动脚本

[root@localhost nginx]# vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx

4、构建镜像

[root@localhost nginx]# docker build -t nginx:test . #这里结尾有个点!!
dockerfile构建nginx镜像

5、镜像生成和运行
查看镜像
dockerfile构建nginx镜像
运行镜像
dockerfile构建nginx镜像
浏览验证
dockerfile构建nginx镜像

如果浏览器上不能浏览到网页,可能是nginx容器中nginx未启动

[root@localhost nginx]# docker exec -it 8730a8c80df6 /bin/bash
[root@8730a8c80df6 nginx-1.14.2]# ls
CHANGES CHANGES.ru LICENSE Makefile README auto conf configure contrib html man objs src
[root@8730a8c80df6 nginx-1.14.2]# cd /usr/local/nginx/sbin/
[root@8730a8c80df6 sbin]# ls
nginx
[root@8730a8c80df6 sbin]# ./nginx

然后进行网页验证即可

猜你喜欢

转载自blog.51cto.com/13760226/2328947