博客详情

docker-compose编排案例 (原创)

作者: 朝如青丝暮成雪
发布时间:2019-12-23 22:25:38  文章分类:docker   阅读(919)  评论(0)

一、docker-compose的安装

官网参考: https://docs.docker.com/compose/

1、安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" \ 
  -o /usr/local/bin/docker-compose

chmod +x  /usr/local/bin/docker-compose #赋予可执行权限

2、安装完成后,docker-compose常用命令

docker-compose version

docker-compose up  (创建并启动所有容器) 

docker-compose up -d  (后台启动)

docker-compose ps (查看服务进程)

docker-compose logs  [SERVER_NAME]

docker-compose stop (停止所有服务)

docker-compose down (停止所有服务,并删除所有的容器、镜像、网络)

docker-compose down --valumes  (停止所有服务,并删除所有容器、镜像、网络、卷)

docker-compose stop  SERVICE_NAME  (停止某个服务)

docker-compose start  SERVICE_NAME (启动某个服务,它所depends_on的服务也会启动)

docker-compose run  SERVICE_NAME   COMMAND   (在某个服务容器中执行一次性的命令)


二、入门案例nodejs+redis(docker官网中的例子是python+redis

实现一个用户访问次数计数的功能:

redis作为后端存储,对于用户的每次返回使用incr自增1

nodejs作为前端web服务器,当用户每次访问nodejs的首页时,nodejs会调用后端redis api的incr自增1 

为此,我们需要一个可以运行nodejs的主机和一个可以运行redis主机,我们分别拉取它们的docker镜像。

docker pull  node:10-alpine

docker pull  redis:4-alpine

mkdir  -p composetest/myapp 

cd composetest/myapp 

vi app.js ,内容如下:


const redis = require('redis');
const client = redis.createClient( 6379, 'redis');

var http=require('http');
var app=http.createServer(function(req,res){

  res.writeHead(200,{'content-type':'text/html;charset=utf-8'})

  if(req.url!="/favicon.ico"){
    client.incr('count',function(err,data){
     console.log(data);
    res.end(`这是你第{data}次访问`);
  });
 }
});

console.log('http server listen on 3000');
app.listen(3000);


在myapp目录中运行 node init  初始化一个node项目,再node install  redis --save  将redis的nodejs模块安装到项目本地。

cd ..

vi  myapp.dockerfile ,内容如下:


FROM node:10-alpine
ADD myapp myapp

EXPOSE 3000
CMD node /myapp/app.js
vi docker-compose.yml ,内容如下:



version: '3'
services:
  myapp:
    build:
     context: .
     dockerfile: myapp.dockerfile
    ports:
      - "3000:3000"
    depends_on:
      - redis
  redis:
    image: "redis:4-alpine"
最后,启动所有服务


docker-componse up 

停止所有服务:

docker-compose stop (停止容器 ) 或者 

docker-compose down (停止容器,删除容器、网络)





关键字:  docker  compose
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号