1.目录结构
├── nginx
│?? ├── dist.zip # 自定义项目
│?? ├── Dockerfile
│?? ├── nginx-1.15.7.tar.gz
│?? ├── nginx.conf
│?? ├── openssl-1.1.1a.tar.gz
│?? ├── pcre-8.42.tar.gz
│?? ├── vhosts.conf
│?? └── zlib-1.2.11.tar.gz
└── service_nginx.yml
?
下载
nginx压缩包下载地址:https://pan.baidu.com/s/1yb783fGyn62kWi8j3hvtmQ密码:h41v?openssl压缩包下载地址:https://pan.baidu.com/s/1l5oiq0-ZzRP00oTfEd6aqA密码:8uk3?pcre压缩包下载地址:https://pan.baidu.com/s/1sXDtYsRlye1ANwCz3bS8BA密码:mrmd?zlib压缩包下载地址:https://pan.baidu.com/s/1AWsZ00uhn32KCg9eGSF1SA密码:6mwr2.?创建dockerfile
# 指定系统镜像版本FROM centos:6# 指定管理员名称MAINTAINER xiangsikai# 添加变量,指定中文编码ENV LANG en_US.UTF-8# 添加变量,同步系统时间ENV TZ=Asia/Shanghai# 添加命令RUN yum install sudo unzip -y # 添加命令RUN sudo yum update -y && \ sudo yum groupinstall -y 'Development Tools' && \ sudo yum install -y epel-release && \ sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel# 添加文件ADD nginx-1.15.7.tar.gz /home/root/# 添加文件ADD pcre-8.42.tar.gz /home/root/# 添加文件ADD zlib-1.2.11.tar.gz /home/root/# 添加文件ADD openssl-1.1.1a.tar.gz /home/root/# 添加命令RUN cd /home/root/nginx-1.15.7/ && ./configure --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --user=nginx \ --group=nginx \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-select_module \ --with-poll_module \ --with-threads \ --with-file-aio \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_xslt_module=dynamic \ --with-http_image_filter_module=dynamic \ --with-http_geoip_module=dynamic \ --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_auth_request_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_degradation_module \ --with-http_slice_module \ --with-http_stub_status_module \ --with-mail=dynamic \ --with-mail_ssl_module \ --with-stream=dynamic \ --with-stream_ssl_module \ --with-stream_realip_module \ --with-stream_geoip_module=dynamic \ --with-stream_ssl_preread_module \ --with-compat \ --with-pcre=../pcre-8.42 \ --with-pcre-jit \ --with-zlib=../zlib-1.2.11 \ --with-openssl=../openssl-1.1.1a \ --with-openssl-opt=no-nextprotoneg \ --with-debug && \ make && make install# 添加命令RUN sudo useradd nginx && sudo mkdir /etc/nginx/conf.d# 添加文件COPY nginx.conf /etc/nginx/nginx.conf# 添加文件COPY vhosts.conf /etc/nginx/conf.d/ # 添加文件ADD dist.zip /usr/local/nginx/html/# 添加命令RUN unzip /usr/local/nginx/html/dist.zip -d /usr/local/nginx/html/ # 启动命令CMD ["nginx","-g","daemon off;"]# 开放端口EXPOSE 80?3、创建镜像(nginx目录下)
docker build -t 192.168.1.81:5000/nginx:v1 .4、上传镜像
docker push 192.168.1.81:5000/nginx:v15、创建?service_nginx.yml
version: '3.7'services: nginx: image: 192.168.1.81:5000/nginx:v1 ports: - 2008:80 networks: - networkce deploy: mode: replicated replicas: 2 update_config: parallelism: 1 delay: 10s failure_action: rollback order: start-first rollback_config: parallelism: 1 delay: 10s failure_action: rollback order: start-first volumes: - type: volume source: nfs-nginx_log target: /var/log/nginx volume: nocopy: true configs: - source: nginx_config target: /etc/nginx/nginx.conf - source: nginx_vhosts target: /etc/nginx/conf.d/vhosts.confnetworks: networkce: driver: overlayvolumes: nfs-nginx_log: driver: local driver_opts: type: "nfs" o: "addr=192.168.1.81,vers=4,soft,timeo=180,bg,tcp,rw" device: "192.168.1.81:/docker/service/zs/nginx/log"configs: nginx_config: file: /docker/service/zs/nginx/config/nginx.conf nginx_vhosts: file: /docker/service/zs/nginx/config/vhosts.conf6、创建服务
docker stack deploy -c service_nginx.yml nginx?
?
05744360