Docker自动化部署安装(一)之安装Nginx

纯干货,不做过多介绍

一、需要一个虚拟机(可忽略)

1.安装CentOS 7.x 操作系统
镜像文件官方下载地址:
http://isoredirect.centos.org/centos/7/isos/x86_64/
2.配置IP地址
vi /etc/sysconfig/network-scripts/ifcfg-{网卡名称}
修改
bootproto=static
onboot=yes
增加
IPADDR=192.168.1.{IP地址}
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=210.22.84.3
DNS2=210.22.70.3

二、安装Docker

(按步骤执行即可,亲测无误)

1.安装docker容器服务
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
2.安装docker-compose容器编排服务
sudo yum -y install epel-release
sudo yum -y install docker-compose
3.创建工作目录软链接
ln -s /home /work
4.修改docker配置
echo '
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}' > /etc/docker/daemon.json

#配置dockerd 的端口12375,用于以后jenkins发布
sed -i 's/ExecStart=\/usr\/bin\/dockerd -H fd:/ExecStart=\/usr\/bin\/dockerd --graph \/work\/docker-images -H tcp:\/\/0.0.0.0:12375 -H fd:/g' /lib/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl restart docker

三、安装Nginx

1.创建文件夹
mkdir -p /work/docker/build/nginx
mkdir -p /work/docker/conf/nginx


2.新建Dockerfile文件
echo '
FROM centos:7.7.1908
MAINTAINER <zxk zxk@qq.com>

RUN yum install -y wget git
RUN wget http://nginx.org/download/nginx-1.18.0.tar.gz
RUN git clone git://github.com/winshining/nginx-http-flv-module.git
#或git clone https://gitee.com/winshining/nginx-http-flv-module.git
RUN tar -xzvf nginx-1.18.0.tar.gz
RUN cd nginx-1.18.0
RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel
RUN yum install -y libxslt-devel gd gd-devel GeoIP GeoIP-devel pcre pcre-devel

RUN useradd -M -s /sbin/nologin nginx
WORKDIR /nginx-1.18.0

RUN ./configure --with-http_ssl_module --add-module="/nginx-http-flv-module"
RUN make
RUN make install

ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"
' > /work/docker/build/nginx/Dockerfile

3.新建nginx.conf文件
echo '
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    open_log_file_cache max=10;

    map $time_iso8601 $logdate {
       '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
       default 'nodate';
    }

    map $http_x_forwarded_for $client_real_ip {
        ""      $remote_addr;
        ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
    }

    log_format  main    '{ "@timestamp": "$time_iso8601", '
                        '"client_real_ip": "$client_real_ip", '
                        '"remote_addr": "$remote_addr", '
                        '"http_x_forwarded_for": "$http_x_forwarded_for", '
                        '"http_referer": "$http_referer", '
                        '"status": $status, '
                        '"request_time": "$request_time", '
                        '"scheme": "$scheme", '
                        '"http_host": "$http_host", '
                        '"request_method": "$request_method", '
                        '"uri": "$uri", '
                        '"args": "$args", '
                        '"request_body": $request_body, '
                        '"body_bytes_sent": $body_bytes_sent, '
                        '"upstream_addr": "$upstream_addr", '
                        '"upstream_http_host": "$upstream_http_host", '
                        '"upstream_response_time": "$upstream_response_time", '
                        '"http_user_agent": "$http_user_agent", '
                        '"http_cookie": "$http_cookie" }';

    include /usr/local/nginx/conf/conf.d/*.conf;
}
' > /work/docker/conf/nginx/nginx.conf


4.新建docker-nginx.yml文件
echo '
version: '3'
services:
  nginx:
    build:
      context: ./build/nginx
      dockerfile: Dockerfile
    restart: always
    privileged: true
    image: nginx:1.18.0
    container_name: nginx
    hostname: nginx
    ports:
     - '60000:60000'
    volumes:
     - /etc/localtime:/etc/localtime
     - /work/docker/conf/nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf
     - /work/docker/conf/nginx/conf.d:/usr/local/nginx/conf/conf.d
     - /work/docker/conf/nginx/cert:/usr/local/nginx/conf/cert
     - /work/www:/work/www
     - /work/docker/logs/nginx:/var/log/nginx
    environment:
     - TZ=Asia/Shanghai
' > /work/docker/docker-nginx.yml


5.启动nginx服务
docker-compose -f /work/docker/docker-nginx.yml up -d

四、配置Nginx访问测试

#创建端口配置


echo '
server {
    listen 60000;
    server_name localhost;

#    access_log  /var/log/nginx/access-whcloud.${logdate}.log  main;
    client_max_body_size 100M;

    location / {
        root   /work/www;
        index  index.html index.htm;
    }


#    location /ceshi/{
#        proxy_set_header Host $host;
#        proxy_set_header X-Real-IP $remote_addr;
#        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#        proxy_http_version 1.1;
#        proxy_set_header Upgrade $http_upgrade;
#        proxy_set_header Connection 'upgrade';
#        proxy_pass http://127.0.0.1:60000;
#    }

    location /ceshi {
        root   /work/www;
        index  index.html index.htm;
    }

}
' > /work/docker/conf/nginx/conf.d/nginxPage.conf

五,放入项目文件

在/work/www目录下放入项目(输入地址即可访问前端项目:http://192.168.19.129:60000/ceshi/):

后续部署服务(比如Jenkis,mysql,Redis等)会陆续整理发布哦!!!

2024-06-16补充1.20.0版本docker安装,yml文件如下:

version: '3'
services:
  nginx:
    restart: always
    privileged: true
    image: nginx:1.20.0
    container_name: nginx
    hostname: nginx
    ports:
     - '80:80'
     - '443:443'
    volumes:
     - /etc/localtime:/etc/localtime
     - /work/docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf
     - /work/docker/conf/nginx/conf.d:/usr/local/nginx/conf/conf.d
     - /work/docker/conf/nginx/cert:/usr/local/nginx/conf/cert
     - /work/www:/work/www
     - /work/docker/logs/nginx:/var/log/nginx
    environment:
     - TZ=Asia/Shanghai
    networks:
      - devops
networks:
  devops:
    driver: bridge

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值