天天看點

Dockerfile安裝源碼nginx

一、準備工作

1、下載下傳基礎鏡像

[[email protected] ~]# docker pull centos
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              9f38484d220f        2 months ago        202MB
           

2、建立存放nginx的目錄和Dockerfile檔案(注意Dockerfile的D需要大寫)

[[email protected] ~]# mkdir docker_nginx
[[email protected] ~]# cd docker_nginx/
[[email protected] docker_nginx]# touch Dockerfile
[[email protected] docker_nginx]# pwd
/root/docker_nginx
[[email protected] docker_nginx]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 14 02:48 Dockerfile
           

3、下載下傳nginx源碼包到docker_nginx目錄下

[[email protected] docker_nginx]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
           

二、編寫Dockerfile

1、配置檔案,注意添加daemon off;不是以守護程序啟動,否則程序進行完成會自動關閉,容器無法再通路

[[email protected] docker_nginx]# cat Dockerfile 
FROM centos

MAINTAINER [email protected]

ADD nginx-1.12.2.tar.gz /usr/local/src

RUN yum install -y gcc gcc-c++  glibc make autoconf openssl openssl-devel
RUN yum install -y libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel
RUN useradd -M -s /sbin/nologin nginx

WORKDIR /usr/local/src/nginx-1.12.2

RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx && make && make install

ENV PATH /usr/local/nginx/sbin:$PATH

EXPOSE 80

ENTRYPOINT ["nginx"]

CMD ["-g","daemon off;"]
           

2、檢視docker_nginx目錄情況

[[email protected] docker_nginx]# pwd
/root/docker_nginx
[[email protected] docker_nginx]# ll
total 964
-rw-r--r-- 1 root root    509 Jun 14 03:17 Dockerfile
-rw-r--r-- 1 root root 981687 Oct 17  2017 nginx-1.12.2.tar.gz
           

3、執行docker build進行建構

[[email protected] docker_nginx]# docker build -t centos_nginx:v1 .
           

4、建構成功提示,并檢視

Removing intermediate container 9976df44f135
Successfully built 18be94a7553b
[[email protected] docker_nginx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos_nginx        v1                  18be94a7553b        4 minutes ago       524 MB
           

三、啟動新鏡像并映射端口到主控端

1、-d背景運作,-p指定端口

[[email protected] docker_nginx]# docker run -d -p 80:80 centos_nginx:v1 
80c508a81a1b2d5f9ecbd6359d16652e1f0c7d8b4cff19035e49351ba84b3921
           

2、檢視容器,可以看到映射端口

[[email protected] docker_nginx]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
80c508a81a1b        centos_nginx:v1     "nginx -g 'daemon ..."   20 seconds ago      Up 19 seconds       0.0.0.0:80->80/tcp   ecstatic_clarke
           

3、容器名稱更改:rename  舊名稱 新名稱

[[email protected] docker_nginx]# docker rename ecstatic_clarke nginx_v1
[[email protected] docker_nginx]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
80c508a81a1b        centos_nginx:v1     "nginx -g 'daemon ..."   7 minutes ago       Up 7 minutes        0.0.0.0:80->80/tcp   nginx_v1
           

4、網頁通路

Dockerfile安裝源碼nginx

繼續閱讀