Docker容器配置Nginx实例分享

这篇文章主要介绍了Docker容器配置Nginx实例分享的相关资料,须要的朋友能够参考下
做为目前最火的应用,Docker 确实存在着其独到之处,不管是程序猿仍是运维都应该据说过 Docker 的大名,Docker 已经走过了许多的坑,目前最新版本是 v1.11.0 版本,应该说是彻底能承载开发使用和运维监控,这款工具能帮助咱们高效的打包、发布和运行承载着应用程序的容器系统。并且收集日志、帮助 App 的快速开发都有很大做用。linux

容器和虚拟机,常常是被拿出来对比的两款产品,实际上二者有着根本的差异,虚拟机是彻底模拟了一台真实计算机,在上面运行的系统可能或者不可能知道本身运行在虚拟化环境下,而且虚拟机承载了将用户指令转换为特权指令的功能,因此虚拟机很是复杂,可是很完备,而 Docker 则彻底不一样。Docker 使用主机自身的 Linux 内核,而后从镜像中产生磁盘目录和软件,全部的进程都运行在主机上,若是有兴趣的话彻底能够 ps aux 查询一下,就能发如今 Docker 中运行的进程,只不过 Docker 对其作了如同 chroot 差很少概念的封装。nginx

Docker 真正用法docker

在 Docker 发展的早期,因为 busybox 等轻量化镜像不完备,因此各大发行版的缩减瘦身镜像获得了更多的使用,特别是因为 Docker 自己是在 Ubuntu 环境下开发的,因此 Ubuntu 和 Debian 在不少镜像中做为基镜像,以此做为基础产生目标镜像。可是随着在实践中的使用,其弊端也暴露出来了,就是太过于重量化,好比 systemd 的日志功能和 Docker 自己的日志功能被重复使用,镜像很难缩小到 300M 之内。并且 Docker 的推荐使用方式就是单进程模型,而并不是是多个进程如同一个完备的操做系统通常。因此就产生了 alpine 等轻量级基镜像,alpine 是什么则能够自行百度,这个镜像是 Docker 官方推荐的镜像,将来官方镜像将会迁移到 alpine 做为基础的镜像上,因此,咱们应当早日熟悉此镜像。运维

构建 Dockerfiledom

本文讲述的是 Docker 容器的 Nginx 实践,不过官方实际上已经有了关于 Nginx 的 alpine 镜像。而在实际使用过程当中,笔者更多的是使用 Tengine,因此根据官方 Dockerfile 的参考,笔者自行编写了 Tengine 镜像的 Dockerfile,但愿能抛砖引玉,各位可以批评指正。curl

FROM alpine:3.3MAINTAINER ChasonTang chasontang@gmail.comENV TENGINE_VERSION 2.1.2ENV CONFIG "\ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --http-client-body-temp-path=/var/cache/nginx/client_temp \ --http-proxy-temp-path=/var/cache/nginx/proxy_temp \ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_auth_request_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-http_spdy_module \ --with-ipv6 \ --with-jemalloc \ "ADD ngx_user.patch /ADD repositories /etc/apk/repositoriesRUN \ addgroup -S nginx \ && adduser -D -S -h /var/cache/nginx -s /sbin/nologin -G nginx nginx \ && apk add --no-cache --virtual .build-deps \ gcc \ libc-dev \ make \ openssl-dev \ pcre-dev \ zlib-dev \ linux-headers \ curl \ jemalloc-dev \ && curl “http://tengine.taobao.org/download/tengine-KaTeX parse error: Expected 'EOF', got '&' at position 45: …ngine.tar.gz \ &̲& mkdir -p /usr…TENGINE_VERSION/src/os/unix/ \ && mv /ngx_user.patch ./ngx_user.patch \ && patch ngx_user.c ngx_user.patch \ && rm ngx_user.patch \ && cd …/…/…/ # && cd /usr/src/tengine-$TENGINE_VERSION \ && ./configure $CONFIG --with-debug \ && make \ && mv objs/nginx objs/nginx-debug \ && ./configure KaTeX parse error: Expected 'EOF', got '&' at position 10: CONFIG \ &̲& make \ && mak…( \ scanelf --needed --nobanner /usr/sbin/nginx \ | awk ‘{ gsub(/,/, “\nso:”, $2); print “so:” $2 }’ \ | sort -u \ | xargs -r apk info --installed \ | sort -u \ )” \ && apk add --virtual .nginx-rundeps KaTeX parse error: Expected 'EOF', got '&' at position 11: runDeps \ &̲& apk del .buil…NGINX_VERSION \ && apk add --no-cache gettext \ \ # forward request and error logs to docker log collector && ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.logCOPY nginx.conf /etc/nginx/nginx.confCOPY nginx.vh.default.conf /etc/nginx/conf.d/default.confEXPOSE 80 443CMD [“nginx”, “-g”, “daemon off;”]工具

文章来源:搜索引擎大全http://www.iis7.com/b/ssyqdq/ui

相关文章
相关标签/搜索