dockerfile構建Nginx鏡像


dockerfile構建Nginx鏡像

一、前期工作准備(前提是安裝好docker)

1.1、創建目錄,用於存放dockerfile

[root@node2 ~]# mkdir /app
[root@node2 ~]# cd /app/
#用於以后存放web服務器的目錄
[root@node2 app]# mkdir web/nginx -p && cd web/nginx 

1.2、構建Dockerfile文件

#構建之前我們先pull個鏡像下來,等會基於這個鏡像做nginx鏡像
[root@node2 ~]# docker pull centos:7.6.1810
#構建的時候,不知道怎么寫,或者命令不記得可以參考hub.docker.com上別人寫好的
---
ADD命令和COPY命令都可以往容器加東西,但是ADD會自動解壓.tar.gz安裝包,COPY原封不動拷貝過去
Dockerfile 是分步執行的當你build前面5步,后面再添加新的命令,前面的會有記錄,不會重新執行!
---

1.3、build:

[root@node2 nginx]# vim Dockerfile

# Base images 基礎鏡像
FROM centos:7.6.1810

#作者名稱
LABEL maintainer="tzh <362777279@qq.com>"

#執行下面命令,安裝基礎環境
RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel vim

#添加nginx到容器里
ADD nginx-1.10.1.tar.gz /usr/local/src/

#編譯安裝
RUN cd /usr/local/src/nginx-1.10.1 && ./configure --prefix=/app/nginx --user=nginx --group=nginx --with-http_s
tub_status_module && make && make install

#全局變量設置
ENV aaa 123456

#做軟鏈接
RUN ln -s /app/nginx/sbin/* /usr/local/sbin/

RUN useradd nginx

#暴露端口
EXPOSE 80 443 22

#運行這個鏡像,默認執行的命令,有多個CMD時,只有最后一個有效,前面的會被覆蓋
CMD ["nginx", "-g", "daemon off;"]

------當前目錄,以及文件------
[root@node2 nginx]# pwd
/app/web/nginx
[root@node2 nginx]# ls
Dockerfile  nginx-1.10.1.tar.gz

[root@node2 nginx]# docker build -t nginx:v2 .
*
*
*
Successfully built b044c844052b
Successfully tagged nginx:v2
[root@node2 nginx]# vim Dockerfile            
FROM centos:7.6.1810
#顯示這個就成功了

#可以進去看看
[root@node2 nginx]# docker run --rm -it nginx:v3 bash

#啟動容器看看是否成功命令:CMD ["nginx", "-g", "daemon off;"]
#能進去說明可以了
[root@node2 nginx]# docker run  -it nginx:v4 bash


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM