前置工作
1、需要准备的东西
一台Centos服务器并连接
我这是演示用的垃圾云,建议大家上阿里云、腾讯云等。
2、连接云服务器
连接服务器看文章: https://blog.csdn.net/qq_32442973/article/details/119840447
安装Docker环境
Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版。本教程基于CentOS 7安装Docker CE。
1、安装Docker的依赖库。
yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加Docker CE的软件源信息。
docker官方源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或者使用国内阿里云源(安装太慢/无法安装可以考虑用这个):
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-c
出现以下内容则代表设置源成功:
3、安装Docker CE。
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
下面是安装方式
sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版 3:20.10.8-3.el7 sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
我用第一种安装方式。
4、启动Docker服务。
1. sudo systemctl start docker # 启动docker 2. sudo systemctl enable docker # 设置开机自启
若不设置开机自启,那么一但服务器宕机或者重启,就得手动输命令重新启动,很麻烦。
准备Dockerfile并部署项目(构建新的业务镜像)
1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)
为了方便管理我们统一放在目录frontend-docker下,以下代码段为步骤:
# 第一步 cd / # 第二步 创建文件夹 mkdir frontend-docker # 第三步 cd frontend-docker # 第四步 创建nginx.conf.template并编辑好保存 vi nginx.conf.template #打开编辑贴上下面的文件内容再按 esc 然后 : wq保存 # 第五步 创建Dockerfile文件并编辑好保存 vi Dockerfile #打开编辑贴上下面的文件内容再按 esc 然后 : wq保存 # 第五步 上传vue项目build后的dist文件夹
nginx.conf.template 文件内容
user nginx; #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /dist; #try_files $uri /index.html; #解决路由重定向跳转 404 页面配置 index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
Dockerfile文件内容 (业务镜像构建流程)
FROM nginx:latest RUN mkdir /dist COPY ./dist /dist COPY ./nginx.conf.template / CMD envsubst < /nginx.conf.template > /etc/nginx/nginx.conf \ && cat /etc/nginx/nginx.conf \ && nginx -g 'daemon off;'
该文件里主要是安装了nginx,复制dist、nginx.conf.template、启动nginx的步骤。
注意:你复制粘贴时可能会无意丢掉头部几个单词,注意检查文件内容是否一致。