使用Docker部署服务
一、Docker概念
1、操作系统层面的虚拟化技术
2、隔离的进程独立于宿主和其它的隔离的进程 - 容器
3、GO语言开发
4、特点:高效的利用系统资源;快速的启动时间;一致的运行环境;持续交付和部署;更轻松的迁移
5、核心:镜像、容器、仓库
二、安装docker
https://yeasy.gitbooks.io/docker_practice/content/install/mac.html?q=
按照文档安装docker,并且注册账号,当电脑的右上角出现小鲸鱼的图标,且显示Docker Desktop is running,安装启动成功

三、Docker构建一个Nginx服务器
1、拉取官方镜像
docker pull nginx
2、查看
docker images nginx
3、新建文件
echo 'hello docker!!' >> www/index.html

docker ps -a // 查看全部
6、 -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开,eu9是CONTAINER ID 的前三位
docker exec -it eu9 /bin/bash
注意️:也可以使用Dockerfile定制镜像
1、新建Dockerfile文件
|
1
2
|
FROM nginx:latestRUN echo '<h1>Hello, Kaikeba!</h1>' > /usr/share/nginx/html/index.html |
2、定制镜像
docker build -t mynginx .
3、运行:-d 守护态运行
docker run -p 80:80 -d mynginx
五、使用Docker定制node镜像
1、node项目下新建Dockerfile

#制定node镜像的版本
FROM node:10-alpine #移动当前目录下面的文件到app目录下 ADD . /app/ #进入到app目录下面,类似cd WORKDIR /app
#安装依赖
RUN npm install
#对外暴露的端口
EXPOSE 3000
#程序启动脚本
CMD ["node", "app.js"]

2、定制镜像
docker build -t mynode .
3、运行:-d 守护态运行
docker run -p 3000:3000 -d mynode
六、Docker-Compose:部署Mongo + MongoExpress
添加docker-compose.yml

version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 27017:27017
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081

mongoose.js代码中添加Mongoose调用
// mongoose.js
const mongoose = require("mongoose");
// 1.连接
mongoose.connect("mongodb://mongo:27017/test", { useNewUrlParser: true }); const conn = mongoose.connection;
conn.on("error", () => console.error("连接数据库失败"));
app.js

// app.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://mongo:27017/test', {useNewUrlParser: true});
const Cat = mongoose.model('Cat', { name: String });
Cat.deleteMany({})
const kitty = new Cat({ name: 'Zildjian' });
kitty.save().then(() => console.log('meow'));
app.use(async ctx => {
ctx.body = await Cat.find()
})

运行
docker-compose up
后台运行
docker-compose up -d
强制重新构建并启
docker-compose up -d --force-recreate --build
使用Docker部署服务的更多相关文章
- docker 部署服务时,node(结点)显示no such image
1. 问题描述 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 9cn5x84lnmga getstartedlab_web.1 ...
- Docker | 部署nginx服务
容器时相互隔离的,docker启动的nginx是容器内的服务,不影响我原先服务器上的nginx服务,小伙伴们可大胆尝试 本篇实在linux环境下操作的,主要目的是夺人眼目,对使用Docker部署服务尝 ...
- docker部署rockermq集群(docker-compose版本)
此处采用docker-compose部署 rockermq主主集群模式 创建相关文件夹 此处创建的文件一一对应docker-compose.yml文件中的映射文件夹,酌情创建,主要需要创建配置文件夹. ...
- Docker Swarm Mode 学习笔记 (部署服务)
使用 docker service 命令来管理 Swarm 集群中的服务,该命令只能在管理节点上执行. 新建服务 docker service create --replicas 3 -p 80:80 ...
- docker swarm 部署服务时,限制服务启动后所在的机器
借助容器技术,可以方便的在不同环境下部署服务,保证服务环境的一致性.docker swarm这个东西,可以方便的对容器进行编排管理. docker swarm集群中,有manager节点与worker ...
- 教你使用docker部署淘宝rap2服务
什么是rap2 先来说说起因,在上一个星期的分享会上,谈到前后端联调上,有同事提到了rap2,特意去了解了一下,觉得使用这个东西来进行前后端的接口联调来真是太方便了,对比我们之前公司内部开发的API ...
- docker swarm英文文档学习-8-在集群中部署服务
Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...
- 【docker】docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志
如题: docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志 场景再现: docker部署并启动 ...
- Docker部署微服务
部署时需要注!意!: 打开防火墙对应的应用端口!!用于外部访问!!内部互访问则不需要. 和对应数据库,缓存,消息中间件服务等的端口(当然这些服务必须先开启,它们也可使用docker部署开启) ,用于容 ...
- 零基础用Docker部署微服务
1. docker架构 这里的Client和DOCKER_HOST(docker server)都是在本地的,docker仓库Registry是在远程的: Client的docker命令通过Docke ...
随机推荐
- UdpClient.BeginReceive(AsyncCallback, Object) 方法
命名空间: System.Net.Sockets 程序集: System.Net.Sockets.dll 从远程主机异步接收数据报. public IAsyncResult BeginReceive ...
- JMeter JSR223 Sampler 教程:性能测试的魔法棒
JMeter JSR223 Sampler 教程:性能测试的魔法棒 宝子们,今天咱要深入探索 JMeter 里超厉害的 JSR223 Sampler,它就像是一把万能钥匙,能打开性能测试的各种奇妙大门 ...
- 优化博客Ⅱ-CDN加速
CDN加速 自从有了第一次博客优化经验,我就越发对优化感兴趣了嘿嘿(✧∇✧). 看着博客首页打开时长为1200ms左右,我又开始琢磨有什么办法能再给网站提提速,让访问时间降低到1000ms以下,这时候 ...
- Note -「Lagrange 反演」记笔习学
也许施工完成啦? 对于常数项为 \(0\),一次项非 \(0\) 的多项式 \(F,G\),定义复合运算 \(\circ\),满足 \[(F\circ G)(x)=F(G(x))=\sum_{ ...
- 关于win1124h2不兼容HCL
Windows 11 24H2与HCL不兼容的问题较为复杂,以下是几种常见的解决办法: 回退系统版本 如果是在更新到Windows 11 24H2的10天内发现HCL不兼容,可以使用系统自带的回退功能 ...
- 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入门开始
前言 为什么我会想着制作一个智能桌面机器人呢?自问自答一下,看过我之前文章的小伙伴应该都知道我之前有为稚晖君开源的ElectronBot桌面机器人开发过一个桌面上位机软件叫电子脑壳,由于Electro ...
- Ellyn-Golang调用级覆盖率&方法调用链插桩采集方案
词语解释 Ellyn要解决什么问题? 在应用程序并行执行的情况下,精确获取单个用例.流量.单元测试走过的方法链(有向图).出入参数.行覆盖等运行时数据,经过一定的加工之后,应用在覆盖率.影响面评估.流 ...
- keycloak~巧用client-scope实现token字段和userinfo接口的授权
keycloak中的client-scope允许你为每个客户端分配scope,而scope就是授权范围,它直接影响了token中的内容,及userinfo端点可以获取到的用户信息,这块我们可以通过自定 ...
- Gitblit 服务器IP变更
当Gitblit服务器的IP地址发生变化时,只需将项目中 ./git/config 文件中的 url改为新的IP即可.
- 独立看门狗IWDG
一.简介 STM32F10xxx内置两个看门狗(独立看门狗是12位递减计数器,窗口看门狗是7位递减计数器),提供了更高的安全性.时间的精确性和使用的灵活性.两个看门狗设备(独立看门狗和窗口看门 ...