Nginx

基本資訊

Nginx 是開源的高效的 Web 伺服器實作,支援 HTTP、HTTPS、SMTP、POP3、IMAP 等協定。

該倉庫位於 https://hub.docker.com/_/nginx/,提供了 Nginx 1.0 ~ 1.11.x 各個版本的映像檔。

使用方法

下面的指令將作為一個靜態頁面伺服器啟動。

$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

使用者也可以不使用這種對應方式,透過利用 Dockerfile 來直接將靜態頁面內容放到映像檔中,內容為

FROM nginx
COPY static-html-directory /usr/share/nginx/html

之後產生新的映像檔,並啟動一個容器。

$ docker build -t some-content-nginx .
$ docker run --name some-nginx -d some-content-nginx

開放連接埠,並對應到本地的 8080 連接埠。

docker run --name some-nginx -d -p 8080:80 some-content-nginx

Nginx的 預設設定檔路徑為 /etc/nginx/nginx.conf,可以透過對應它來使用本地的設定檔,例如

docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx

使用設定檔時,為了在容器中正常執行,需要保持 daemon off;

Dockerfile

stable 版本

FROM debian:jessie

MAINTAINER NGINX Docker Maintainers "[email protected]"

ENV NGINX_VERSION 1.10.1-1~jessie

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
    && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get install --no-install-recommends --no-install-suggests -y \
                        ca-certificates \
                        nginx=${NGINX_VERSION} \
                        nginx-module-xslt \
                        nginx-module-geoip \
                        nginx-module-image-filter \
                        nginx-module-perl \
                        nginx-module-njs \
                        gettext-base \
    && rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

EXPOSE 80 443

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

1.11.x 版本

FROM debian:jessie

MAINTAINER NGINX Docker Maintainers "[email protected]"

ENV NGINX_VERSION 1.11.1-1~jessie

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
    && echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get install --no-install-recommends --no-install-suggests -y \
                        ca-certificates \
                        nginx=${NGINX_VERSION} \
                        nginx-module-xslt \
                        nginx-module-geoip \
                        nginx-module-image-filter \
                        nginx-module-perl \
                        nginx-module-njs \
                        gettext-base \
    && rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

EXPOSE 80 443

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

results matching ""

    No results matching ""