加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

写给前端的Docker拭魅战教程

发布时间:2019-10-01 09:58:31 所属栏目:建站 来源:花生PeA
导读:本篇文章具体而又简短的先容了:一名完全不相识 Docker 前端措施员,将全站 Docker 化的进程。内容首要包括: Docker 根基观念 真拭魅站点迁徙进程: 静态站点 Nodejs 站点(Express) WordPress(PHP) 一些必备能力:开机启动、常用Shell 文章会讲授行使 Docke

登录VPS处事器,安装 Nginx。由于我是 Ubuntu,以是可以用apt安装。其他 Linux 刊行版可以百度下安装要领,凡是2行内可以搞定:

  1. apt update # 更新软件包 
  2. apt-get install nginx # 安装 Nginx 
  3. systemctl status nginx # 查察 Nginx 状态 

此时当地通过赏识器会见 VPS 的公网 IP 可用看到 Nginx 的接待页面

写给前端的Docker拭魅战教程

然后在 VPS 处事器的/etc/nginx/conf.d/中成立一个vhost.conf文件,设置如下内容:

  1. server { 
  2.     listen 80; 
  3.     server_name pea3nut.info; 
  4.  
  5.     location / { 
  6.         proxy_pass http://127.0.0.1:8082; 
  7.     } 

设置的意思是,监听来自 80 端口的流量,若会见域名是pea3nut.info(替代为你本身的域名),则所有转发到http://127.0.0.1:8082中

设置完成后,重启 Nginx 处事器。如果 Ubuntu 可以行使systemctl restart nginx呼吁,差异 Linux 刊行版稍有差异

设置乐成后,会见pea3nut.info会看到和VPS公网IP:8082沟通的结果

更新站点

而迁徙完成 Docker 后,我想改一个错别字的流程变为:

  • 当地修改完成,执行git push
  • 守候 CI 编译完成
  • 登录 VPS 处事器,执行:
  1. docker image pull pea3nut/pea3nut-info:latest 
  2. docker container create -p 8082:80 pea3nut/pea3nut-info:latest # 获得 yyy 
  3. docker container stop xxx # xxx 为当前运行的容器ID,可用 docker container ls 查察 
  4. docker container start yyy # yyy 第二条呼吁返回值 

呼吁照旧有些长?我们在下面会进一步优化它

迁徙 Nodejs 站点(Express)

接下来我们拭魅战迁徙一个由 Nodejs 写的 Express SSR 站点

  • 网址:pxer.pea3nut.org
  • 源码:github/pxer-homepage

我规划怎么做

网站行使 Ejs 模板渲染页面。在没迁徙 Docker 之前,若我想更新线上网站中内容时,必要:

  1. 当地修改好 Ejs 可能其他文件
  2. 手动通过 FTP 上传随处事器
  3. 在处事器端重启 Nodejs 历程。如有 npm 包依靠窜改,必要在VPS处事器上手动执行npm install
  4. git push更新 Github 源码

轻微有点贫困,因此我规划这样改:

  1. 执行git push
  2. 自动检测到 github 有代码更新,自动打包出一个 Docker 镜像
  3. CI 编译完成后,SSH 登录 VPS,删掉现有容器,用新镜像建设一个新容器

而这样做的甜头是:

  1. 不必再手动 FTP 上传文件
  2. 不必手动维护处事器的 Nodejs 运行情形

实验

详细的进程和处理赏罚静态站点没有什么出格的区别,无非是:

  1. 编写 Dockerfile 文件
  2. 在 CI 时自动打包镜像
  3. 在VPS增进一个 Nginx 反向署理

这次就不一再讲了,详细的设置可以参考项目中的相干文件

Tips: 你也许发明白 Dockerfile 中的ENTRYPOINT呼吁必需指定一个前台历程。若你的 Nodejs 应用是行使 PM2 举办保活的,你必要替代pm2 start app.js为pm2-docker app.js

docker-compose

当将 Nodejs 站点迁徙完成,我们的 VPS 处事器上已经运行了2个容器。每次镜像更新都要手动的docker container create带一堆参数是较量贫困的,尤其是当日后容器日益增多的时辰。而这时,就轮到docker-compose登场了~

docker-compose 是 Docker 官方提供的一个 Docker 打点器材。若你是通过桌面端的 Docker 安装包安装的 Docker,它是会默以为你安装 docker-compose 的。可以试试如下呼吁:

  1. docker-compose --help 

假如是在 Linux,可以通过如下呼吁安装 docker-compose:

  1. curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 
  2. chmode +x /usr/local/bin/docker-compose 

docker-compose 和 Docker 差不多,也是只要一份文件就能跑起来。docker-compose 首要的浸染就是可以或许让你不必手敲那么多 Docker 呼吁

成立一个目次,然后在目次中成立docker-compose.yml,内容如下:

  1. version: "3.7" # 这个是设置文件的版本,差异的版本号声明方法会有渺小的差异 
  2. services: 
  3.     info: 
  4.         container_name: pea3nut-info 
  5.         image: pea3nut/pea3nut-info:latest 
  6.         ports: 
  7.             - "8082:80" 
  8.         restart: on-failure 

然后在目次中键入如下呼吁就能将处事跑起来:

  1. docker-compose up info 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读