1. 程式人生 > >dockerfile構建nginx鏡像

dockerfile構建nginx鏡像

size top eve 端口 usr blog sign col 環境

Dockerfile是一個文本格式的配置文件,用戶可以使用dockerfile來快速創建自定義的鏡像。

Dockerfile指令說明

分類 指令 說明
配置指令 ARG 定義創建鏡像過程中使用的變量
配置指令 FROM 指定鏡像創建的基礎鏡像
配置指令 LABEL 為生成的鏡像添加元數據標簽信息
配置指令 EXPOSE 聲明鏡像內服務監聽的端口
配置指令 ENV 指定環境變量
配置指令 ENTRYPOINT 指定鏡像的默認入口指令
配置指令 VOLUME 創建一個數據卷掛載點
配置指令 USRE 指定容器運行時的用戶名和UID
配置指令 WORKDIR 配置工作目錄
配置指令 ONBUILD 創建子鏡像時指定自動執行的操作指令
配置指令 STOPSIGNAL 指定退出的信號值
配置指令 HEALTHCHECK 配置所啟動容器如何進行健康檢查
操作指令 RUN 運行指定命令
操作指令 CMD 啟動容器時指定默認執行的命令
操作指令 ADD 添加內容到啟動鏡像
操作指令 COPY 復制內容到鏡像

下面我們來使用dockerfile構建一個nginx鏡像
1、首先我們拉取一個centos鏡像作為我們的基礎鏡像
技術分享圖片
技術分享圖片

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 . #這裏結尾有個點!!
技術分享圖片

5、鏡像生成和運行
查看鏡像
技術分享圖片
運行鏡像
技術分享圖片
瀏覽驗證
技術分享圖片

如果瀏覽器上不能瀏覽到網頁,可能是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

然後進行網頁驗證即可

dockerfile構建nginx鏡像