西瓜の

-人类是因为记录才进入文明-

2020/04/28
23:32
technology

docker-compose

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。

下载:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

常用命令:

docker-compose config 		检查docker-compose.yml配置是否正确,正确则显示配置						
docker-compose build		构建(重新构建)项目中的服务容器
docker-compose down		停止 up 命令所启动的容器,并移除网络	
docker-compose images		列出docker-compose.yml中包含的镜像
docker-compose logs		查看日志
docker-compose ps		列出项目中的所有容器
docker-compose pull		pull项目中的所有镜像
docker-compose stop [服务名]	暂停服务
docker-compose rm [服务名]	删除服务容器
docker-compose start [服务名]	启动服务
docker-compose up [服务名] [-d]	尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。		

更多命令参考:https://www.funtl.com/zh/docs-docker/Docker-Compose-%E5%91%BD%E4%BB%A4%E8%AF%B4%E6%98%8E.html

一个简单的docker-compose.yml文件:

version: "3"
services:

 eureka-server:
  #构建镜像
  build:
   #Context上下文地址(docker build 的上下文地址)
   context:  ./1_eureka-server
   #Dockerfile文件名
   dockerfile: Dockerfile
   #也可以直接指定镜像名
#  images: wmelon/eureka-server
  #端口映射关系
  ports:
   - 9100:9100
  #数据卷
  volumes:
   - "/usr/local/docker/logs/:/usr/local/docker/eureka/logs/"
  #网络配置(容器互联,同一网络下可以ping通服务名(例如 ping eureka-server 解析出就是启动 eureka-server服务的 容器ip地址 ))
  networks:
   - network1

 eureka-getway:
  build:
   context:  ./2_eureka-getway
   dockerfile: Dockerfile
#  images: wmelon/eureka-server
  ports:
   - 9101:9101
  volumes:
   - "/usr/local/docker/logs/:/usr/local/docker/eureka/logs/"
  networks:
   - network1
  #依赖于服务 eureka-server,会在eureka-server 之后构建
  depends_on:
   - eureka-server

#定义网络
networks:
 network1:

更多docker-compose.yml模本语法参考:

https://www.funtl.com/zh/docs-docker/Docker-Compose-%E6%A8%A1%E6%9D%BF%E6%96%87%E4%BB%B6.html#build

当前文件夹是这个亚子的: