码头工人容器配置Nginx实例分享

  

  这篇文章主要介绍了码头工人容器配置Nginx实例分享的相关资料,需要的朋友可以参考下   
  作为目前最火的应用,码头工人确实存在着其独到之处,无论是程序猿还是运维都应该听说过码头工人的大名,码头工人已经走过了许多的坑,目前最新版本是v1.11.0版本,应该说是完全能承载开发使用和运维监控,这款工具能帮助我们高效的打包,发布和运行承载着应用程序的容器系统。而且收集日志,帮助应用的快速开发都有很大作用。   

  

  容器和虚拟机,经常是被拿出来对比的两款产品,实际上两者有着根本的差,别虚拟机是完全模拟了一台真实计算机,在上面运行的系统可能或者不可能知道自己运行在虚拟化环境下,并且虚拟机承载了将用户指令转换为特权指令的功能,所以虚拟机非常复杂,但是很完备,而码头工人则完全不同.Docker使用主机自身的Linux内核,然后从镜像中产生磁盘目录和软件,所有的进程都运行在主机上,如果有兴趣的话完全可以ps辅助查询一下,就能发现在码头工人中运行的进程,只不过码头工人对其做了如同chroot差不多概念的封装。   

  

  码头工人真正用法   

  

  在码头工人发展的早期,由于busybox等轻量化镜像不完备,所以各大发行版的缩减瘦身镜像得到了更多的使用,特别是由于码头工人本身是在Ubuntu环境下开发的,所以Ubuntu和Debian在很多镜像中作为基镜像,以此作为基础产生目标镜像。但是随着在实践中的使用,其弊端也暴露出来了,就是太过于重量化,比如systemd的日志功能和码头工人本身的日志功能被重复使用,镜像很难缩小到300以内。而且码头工人的推荐使用方式就是单进程模型,而并非是多个进程如同一个完备的操作系统一般,所以就产生了高山等轻量级基镜像,高山是什么则可以自行百度,这个镜像是码头工人官方推荐的镜像,未来官方镜像将会迁移到高山作为基础的镜像上,所以,我们应当早日熟悉此镜像。   

  

  构建Dockerfile   

  

  本文讲述的是码头工人容器的Nginx实践,不过官方实际上已经有了关于Nginx的高山镜像。而在实际使用过程中,笔者更多的是使用Tengine,所以根据官方Dockerfile的参考,笔者自行编写了Tengine镜像的Dockerfile,希望能抛砖引玉,各位能够批评指正。   

  

  从高山:3.3维护者ChasonTang       chasontang@gmail.com      ENV TENGINE_VERSION 2.1.2ENV配置“\——prefix=/etc/nginx \——sbin-path=/usr/sbin/nginx \——conf-path=/etc/nginx/nginx。conf \——error-log-path=/var/log/nginx/错误。日志\——http-log-path=/var/log/nginx/访问。日志\——pid-path=/var/运行/nginx。pid \——lock-path=/var/运行/nginx。锁\——http-client-body-temp-path=/var/缓存/nginx/client_temp \——http-proxy-temp-path=/var/缓存/nginx/proxy_temp \——http-fastcgi-temp-path=/var/缓存/nginx/fastcgi_temp \——http-uwsgi-temp-path=/var/缓存/nginx/uwsgi_temp \——http-scgi-temp-path=/var/缓存/nginx/scgi_temp \——用户=nginx \——组=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_ssl_module \——with-file-aio \ with-http_spdy_module \——使用ipv6 \ with-jemalloc \“添加ngx_user。补?添加库/etc/apk/repositoriesRUN \ addgroup - s nginx \,,adduser - d - s - h/var/cache/nginx - s/sbin/nologin - g nginx nginx \,,apk添加- no - cache -虚拟.build-deps \ gcc \ libc-dev \制造\ openssl-dev \ pcre-dev \ zlib-dev \ linux-headers \ \ jemalloc-dev \和旋度,旋度”      http://tengine.taobao.org/download/tengine-         TENGINE_VERSION/src/os/unix/\,,mv/ngx_user。补丁。/ngx_user。补丁\,,补丁ngx_user。c ngx_user。补丁\,,rm ngx_user。补丁\,,cd…/??#,,cd/usr/src/tengine - TENGINE_VERSION \美元,,./configure配置——美元的调试\,,使\,,mv obj/nginx obj nginx-debug \,,/configure       (\ scanelf——需要nobanner/usr/sbin/nginx \ | awk的{gsub (/,/,“\ nso:”, 2美元);打印”:“$ 2}\ |排序- u \ | xargs - r的apk信息——安装\ | - u \)“\,,apk添加——虚拟.nginx-rundeps       NGINX_VERSION \,,apk添加——no - cache gettext \ \ #转发请求和错误日志日志码头工人收集器,,ln科幻/dev/stdout/var/log/nginx/access.日志\,,ln科幻/dev/stderr/var/log/nginx/error.logCOPY nginx。参看/etc/nginx/nginx.confCOPY nginx.vh.default.conf/etc/nginx/conf.d/default.confEXPOSE 80 443 cmd [“nginx”、“g”、“守护进程;”   

码头工人容器配置Nginx实例分享