docker-compose编排案例

一、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   (在某个服务容器中执行一次性的命令)

docker-compose exec SERVICE_NAME    --index=1  /bin/sh  (进入容器内部)

二、入门案例nodejs+redis(官网中的例子是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 (停止容器,删除容器、网络)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值