纯干货,不做过多介绍
一、需要一个虚拟机(可忽略)
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