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

写给前端的Docker拭魅战教程

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

docker image build ./ -t hello-docker:1.0.0的意思是:基于路径./(当前路径)打包一个镜像,镜像的名字是hello-docker,版本号是1.0.0。该呼吁会自动探求Dockerfile来打包出一个镜像

  1. Tips: 你可以行使docker images来查察本机已有的镜像 

不出不测,你应该能获得如下输出:

  1. Sending build context to Docker daemon  3.072kB 
  2. Step 1/3 : FROM nginx 
  3.  ---> 5a3221f0137b 
  4. Step 2/3 : COPY ./index.html /usr/share/nginx/html/index.html 
  5.  ---> 1c433edd5891 
  6. Step 3/3 : EXPOSE 80 
  7.  ---> Running in c2ff9ec2e945 
  8. Removing intermediate container c2ff9ec2e945 
  9.  ---> f6a472c1b0a0 
  10. Successfully built f6a472c1b0a0 
  11. Successfully tagged hello-docker:1.0.0 

可以看到其运行了 Dockerfile 中的内容,此刻我们简朴拆解下:

  • FROM nginx:基于哪个镜像
  • COPY ./index.html /usr/share/nginx/html/index.html:将宿主机中的./index.html文件复制进容器里的/usr/share/nginx/html/index.html
  • EXPOSE 80:容器对外袒露80端口

运行容器

我们方才行使 Dockerfile 建设了一个镜像。此刻有镜像了,接下来要按照镜像建设容器:

  1. docker container create -p 2333:80 hello-docker:1.0.0 
  2. docker container start xxx # xxx 为上一条呼吁运行获得的功效 

然后在赏识器打开127.0.0.1:2333,你应该能看到方才本身写的index.html内容

在上边第一个呼吁中,我们行使docker container create来建设基于hello-docker:1.0.0镜像的一个容器,行使-p来指定端口绑定——将容器中的80端口绑定在宿主机的2333端口。执行完该呼吁,会返回一个容器ID

而第二个呼吁,则是启动这个容器

启动后,就能通过会见本机的2333端口来到达会见容器内80端口的结果了

  1. Tips: 你可以行使docker containers ls来查察当前运行的容器 

当容器运行后,可以通过如下呼吁进入容器内部:

  1. docker container exec -it xxx /bin/bash # xxx 为容器ID 

道理现实上是启动了容器内的/bin/bash,此时你就可以通过bash shell与容器内交互了。就像长途毗连了SSH一样

产生了什么

我们总结下都产生了什么:

  1. 写一个 Dockerfile
  2. 行使docker image build来将Dockerfile打包成镜像
  3. 行使docker container create来按照镜像建设一个容器
  4. 行使docker container start来启动一个建设好的容器

写给前端的Docker拭魅战教程

固然很简朴,可是也没有感受到“辽阔天地,大有可为,随心所欲”呢?

迁徙静态站点

接下来我们拭魅战迁徙一个由 Vuejs 写的纯静态 SPA 单页站点:

  • 网址:pea3nut.info
  • 源码:github/pea3nut-info

我规划怎么做

在没迁徙 Docker 之前,若我想更新线上网站中内容时,必要:

  1. 当地npm run build打包产出静态文件
  2. 手动通过 FTP 上传随处事器
  3. git push更新 Github 源码

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

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

而这样做的甜头是:

  1. 不必再手动 FTP 上传文件
  2. 当我举办修改错别字这样的简朴操纵时,可以免测。改完直接git push,而不必当地npm run build

Github中的CI

起首是让 Github 在我每次更新代码时打包出一个镜像

在 Github,可以有免费的 CI 资源用,它就是 Travis CI

在项目中根目次中添加.travis.yml文件,内容如下:

  1. language: node_js 
  2. node_js: 
  3.   - "12" 
  4. services: 
  5.   - docker 
  6.  
  7. before_install: 
  8.   - npm install 
  9.  
  10. script: 
  11.   - npm run build 
  12.   - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin 
  13.   - docker build -t pea3nut/pea3nut-info:latest . 
  14.   - docker push pea3nut/pea3nut-info:latest 

(编辑:湖南网)

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

热点阅读