docker-compose使用笔记

继上篇 Docker使用笔记 ,成功地在一台服务器上创建了docker 镜像仓库,然后在其它服务器 下载这个仓库的镜像,并试运行。这对于做多机子负载运维工作,已经是非常便利了,一旦我们在一台服务器上发布过服务之后,后面就不用在其它服务器上重复运维操作,只需2步即可:下载镜像,运行镜像。

但是新的问题来了,如果第一台机子布署的这个应用,是一个微服务架构,或者多应用分布式架构,站点加服务,一共有几十个,那也是比较麻烦的事情。有没有一种方式可以一次性配置,一键发布呢?当时是有的,我们可以手动写批处理命令。不过还是要花费不少的时间和精力。Docker-compose可以非常便利地解决这个问题,只需要写一份配置文件,然后执行即可。这要比自己写批处理命令要来得高效。

下面是docker-compose的安装,ubuntu系统安装都是快:  #apt install docker-compose  可以去点根烟了...

回来看看安装情况, #docker-compose version

docker-compose version 1.8.0, build unknown
docker-py version: 1.9.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016

发现版本有点低,不过也没关系

 

下面是写一份 docker-compose.yaml

我这份文件比较简单,就是部署2个 web app

version: "2"
services:
 app-1:
  image: 192.168.40.128:5000/dotnetimage:1.0
  container_name: dotnetapp-container-1
  expose:
   - "80"
  ports:
   - "8022:80"
  networks:
  - dotnetcore-network

 app-2:
  image: 192.168.40.128:5000/dotnetimage:1.0
  container_name: dotnetapp-container-2
  expose:
   - "80"
  ports:
   - "8023:80"
  networks:
   - dotnetcore-network

networks: ##定义网络组
 dotnetcore-network: ## 网络组名称
  driver: bridge ## 网络的模式

版本号只能选2, 因为安装的dock-compose版本有点低

2个容器都是用着同一个私有仓库, 192.168.40.128:5000/dotnetimage:1.0

2个不同的对外端口,8022,8023

分别自定义了容器名:dotnetapp-container-1  dotnetapp-container-2

将这个文件放在第2台服务器,此时这台服务器需要安装 docker和docker-compose

在此文件所在的文件下执行 #docker-compose build

app-2 uses an image, skipping
app-1 uses an image, skipping

说是跳过,不知何故。不知到底是build成功了没有。

尝试性地再执行 #docker-compose up

容器创建成功了

但这是前台模式,必须Ctrl+C才能做其它事,只能先卸下来 #docker-compose down

然后再 #docker-compose up -d  后台进程运行

 

试验结果:

 

一步到位,发布了2个web app, 这就是容器编排 docker-compose 的魅力!

posted @ 2020-01-09 17:29  上盐码农  阅读(3310)  评论(0编辑  收藏  举报