对部署_nginx_pm2_docker的研究3

网友投稿 248 2022-10-18

对部署_nginx_pm2_docker的研究3

Docker概念

隔离的进程独⽴于宿主和其它的隔离的进程 - 容器

GO语⾔开发

特点

⾼效的利⽤系统资源

快速的启动时间

⼀致的运⾏环境

持续交付和部署

更轻松的迁移

对⽐传统虚拟机总结

特性 容器 虚拟机

启动 秒级 分钟级

硬盘使⽤ ⼀般为 MB ⼀般为 GB

性能 接近原⽣ 弱于

系统⽀持量 单机⽀持上千个容器 ⼀般⼏⼗个

三个核⼼概念

镜像

容器

仓库

Docker基本使⽤

构建⼀个Nginx服务器

1. 拉取官⽅镜像

# 拉取官⽅镜像

docker pull nginx

# 查看

docker images nginx

# 启动镜像

mkdir 'hello docker!!' >> 启动

# run -p 80:80 -v $PWD/-d nginx

# 查看进程

docker ps

docker ps -a // 查看全部

# 伪终端 ff6容器的uuid

# -t 选项让Docker分配⼀个伪终端(pseudo-tty)并绑定到容器的标准输⼊上,

# -i 则让容器的标准输⼊保持打开

docker exec -it ff6 /bin/bash

# 停⽌

docker stop ff6

# 删除镜像

docker rm ff6

Dockerfifile定制镜像

#Dockerfile

FROM nginx:latest

RUN echo '

Hello, Kaikeba!

' > /usr/share/nginx/html/index.html

# 定制镜像

docker build -t mynginx .

# 运⾏

# -d 守护态运⾏

docker run -p 80:80 -d mynginx

定制⼀个程序NodeJS镜像

npm init -ynpm i koa -s// package.json{"name": "myappp","version": "1.0.0","main": "app.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC","description": "myappp","dependencies": {"koa": "^2.7.0"开课吧web全栈架构师}}// app.jsconst Koa = require('koa')const app = new Koa()app.use(ctx => {Math.random() > 0.8 ? abc() : ''ctx.body = 'Hello Docker'})app.listen(3000, () => {console.log('app started at node:10-alpine

#移动当前⽬录下⾯的⽂件到app⽬录下

ADD . /app/

#进⼊到app⽬录下⾯,类似cd

WORKDIR /app

#安装依赖

RUN npm install

#对外暴露的端⼝

EXPOSE 3000

#程序启动脚本

CMD ["node", "app.js"]

# 定制镜像

docker build -t mynode .

# 运⾏

docker run -p 3000:3000 -d mynode

Pm2 - 利⽤多核资源

# .dockerignore

node_modules

// process.yml

apps:

- script : app.js

instances: 2

watch : true

env :

NODE_ENV: production

# Dockerfile

FROM keymetrics/pm2:latest-alpine

WORKDIR /usr/src/app

ADD . /usr/src/app

RUN npm config set registry && \

npm i

EXPOSE 3000

#pm2在docker中使⽤命令为pm2-docker

CMD ["pm2-runtime", "start", "process.yml"]

# 定制镜像

docker build -t mypm2 .

# 运⾏

docker run -p 3000:3000 -d mypm2

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Java目录操作与文件操作教程
下一篇:Docker快速入门之命令行
相关文章

 发表评论

暂时没有评论,来抢沙发吧~