docker导出日志到本地的方法是什么
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 '
# 定制镜像
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~