docker-compose使用开源镜像启动容器

以携程apollo项目为例,使用docker-compose部署单节点模式

创建apollo文件夹,vim一个新的docker-compose.yaml文件,文件内容如下:

version: '3'
services:
apollo-configservice:
image: apolloconfig/apollo-configservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像
container_name: apollo-configservice
ports:
- "8080:8080"
volumes:
# 日志挂载
- /usr/local/apollo/servers/server2/logs/apollo-configservice:/opt/logs
environment:
# 可通过 SERVER_PORT 指定默认启动端口,ports 也需要对应修改
# SERVER_PORT: 8080
# 指定 homePageUrl 为当前宿主的 apollo-configservice 地址,不然会出现无法访问
JAVA_OPTS: "-Deureka.instance.homePageUrl=http://192.168.10.1:8080"
# 数据库连接地址
SPRING_DATASOURCE_URL: 'jdbc:mysql://192.168.10.1:13306/ApolloConfigDB?characterEncoding=utf8'
SPRING_DATASOURCE_USERNAME: 'XXX'
SPRING_DATASOURCE_PASSWORD: '123456'
depends_on:
- apollo-db apollo-adminservice:
image: apolloconfig/apollo-adminservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像
container_name: apollo-adminservice
ports:
- "8090:8090"
volumes:
# 日志挂载
- /usr/local/apollo/servers/server2/logs/apollo-adminservice:/opt/logs
environment:
# 指定 homePageUrl 为当前宿主的 apollo-adminservice 地址,不然会出现无法访问
JAVA_OPTS: "-Deureka.instance.homePageUrl=http://192.168.10.1:8090"
# 数据库连接地址
SPRING_DATASOURCE_URL: 'jdbc:mysql://192.168.10.1:13306/ApolloConfigDB?characterEncoding=utf8'
SPRING_DATASOURCE_USERNAME: 'root'
SPRING_DATASOURCE_PASSWORD: '123456'
depends_on:
- apollo-configservice apollo-db:
image: mysql:5.7
container_name: apollo-db
command: --default-authentication-plugin=mysql_native_password
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
depends_on:
- apollo-dbdata
ports:
- "13306:3306"
volumes:
- ./sql:/docker-entrypoint-initdb.d
volumes_from:
- apollo-dbdata apollo-dbdata:
image: alpine:latest
container_name: apollo-dbdata
volumes:
- /var/lib/mysql apollo-portal:
image: apolloconfig/apollo-portal:1.7.0 # 镜像地址,这里使用的是直接在当前主机上构建的镜像
container_name: apollo-portal
ports:
- "8070:8070"
volumes:
# 日志挂载
- /usr/local/apollo/servers/server1/logs/apollo-portal:/opt/logs
environment:
# 数据库连接地址
DS_URL: "jdbc:mysql://192.168.10.1:13306/ApolloPortalDB?characterEncoding=utf8"
# 数据库用户名
DS_USERNAME: "root"
# 数据库密码
DS_PASSWORD: "123456"
# META_SERVER 地址
# PRO_META: "http://192.168.10.1:8080"
#自定义相对路径
SERVER_SERVLET_CONTEXT_PATH: "/apollo"
depends_on:
- apollo-adminservice

进入apollo文件夹后,使用以下命令进行容器操作控制

docker-compose  up (启动yml定义的所有服务,-d 后台启动)

docker-compose  ps (查看已经启动的服务状态)

docker-compose  kill (停止某个服务)

docker-compose  logs (可以查看某个服务的log)

docker-compose  port (打印绑定的public port)

docker-compose  pull (pull服务镜像)

docker-compose  stop (停止yml中定义的所有服务)

docker-compose  start (启动被停止的yml中的所有服务)

docker-compose  kill (强行停止yml中定义的所有服务)

docker-compose  rm (删除yml中定义的所有服务)

docker-compose  restart (重启yml中定义的所有服务)

apollo的三个服务是有先后依赖关系的,所以使用depends_on 对容器启动顺序进行编排

如需分布式部署,可将上述docker-compose进行拆分,在不同机器上部署admin、config的环境

将portal的XXXX_META设置或者在数据库更改(具体分布式部署配置请参考Apollo官方说明)

docker-compose使用dockerfile构建镜像,并启动容器

以上服务镜像都是开源镜像,所有没有使用DockerFile,如果项目中需要使用DockerFile构建自定义镜像,可以在docker-compose.yaml文件中 使用build关键字来来构建,如下:

version: '3.0'
services:
test_container:
build:
context: ../
dockerfile: DockerfileDev
ports:
- 81:80
restart: unless-stopped
container_name: test_container
image: test_container
  • build中context指定设定上下文根目录,然后以该目录为准指定Dockerfile
  • dockerfile指定 Dockerfile 文件名
  • ports用于映射端口的标签。
  • 如果前面有了build那image则用来指定镜像名称,如果没有image则用来构建镜像
  • restart重启策略

dockerFile文件相关知识点见下述链接

1. Docker入门基础(一)

2. Docker 实战(二)——centos7镜像安装nginx,将安装nginx的centos容器生成新的镜像,并导出

docker-compose实践(携程apollo项目)的更多相关文章

  1. 携程apollo系列-客户端集成

    本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...

  2. 携程apollo系列-个人开发环境搭建

    本博客讲详细讲解如何在 Windows 搭建携程 Apollo 服务器 (用户个人开发). 开发服务器有多种搭建方式:(1) docker, 搭建过程非常简单, 推荐有 docker 环境(2) 部署 ...

  3. 分布式配置中心 携程(apollo)

    1.传统配置文件与分布式配置文件区别 传统配置文件:如果修改了配置文件,需要重新打包发布,重新发布服务,而且每个环境的变更配置文件,比较繁琐. 分布式配置文件:将配置文件注册到配置中心上去,可以使用分 ...

  4. CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性.服务端基于Spring Boot ...

  5. 携程Apollo配置中心架构深度剖析

    转自:http://www.uml.org.cn/wfw/201808153.asp 一.介绍 Apollo(阿波罗)[参考附录]是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在 ...

  6. Spring Boot 2.0 整合携程Apollo配置中心

    原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...

  7. 携程Apollo统一配置中心的搭建和使用

    原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...

  8. Docker Compose 实践及梳理

    Docker Compose 可以实现 Docker 容器集群的编排,可以通过 docker-compose.yml 文件,定义我们的服务及其需要的依赖,轻松地运行在测试.生产等环境 文档 Produ ...

  9. 开源实践 | 携程在OceanBase的探索与实践

    写在前面:选型考虑 携程于1999年创立,2016-2018年全面推进应用 MySQL 数据库,前期线上业务.前端技术等以 SQL Server 为主,后期数据库逐步从 SQL Server 转到开源 ...

  10. SpringBoot 整合携程Apollo配置管理中心

    携程官网对apollo的使用讲解了很多种方式的使用,但是感觉一些细节还是没讲全,特别是eureka配置中心地址的配置 这里对springboot整合apollo说一下 >SpringBoot启动 ...

随机推荐

  1. Linux 第五节 (shell脚本while循环,case,计划任务,用户及权限)

    #!/bin/bash #this is a test script PRICE=$(expr $RANDOM % 1000)   //将随机得出的数字取余 TIMES=0 while true do ...

  2. ES-索引库

    数据准备 本次学习涵盖ES简单查询,聚合查询,所以在创建测试库时会可以涵盖一些个性化字段,用于学习搜索用法 索引创建 几个疑问 1.能否用中文命名 安排:我用"蓝闪test",中英 ...

  3. sap软件功能介绍及主要功能(模块)有哪些?

    SAP 成立于 1972 年,最初称为 System Analysis Program Development (Systemanalyse Programmentwicklung),后来采用缩写 S ...

  4. 是时候开始写总结了-今日总结-vue单页面制作

    今天哥给了我一个页面,让做出类似的. <h2>就直接说下页面用到的知识点吧</h2> 首先说下该页面使用的是vue2+less  直接写 导入模块时就只导入了cnpm i  l ...

  5. postgresql源码解读

    大量模块源码解读 https://blog.csdn.net/cuichao1900?type=blog 存储管理(内存管理.外存管理)源码解读,每行都有注释 https://blog.csdn.ne ...

  6. 工程能力-远程JUNO-linux

    工程能力-远程JUNO-linux 1 ping 通linux 地址 2 ssh/scp 连接/传输数据 ssh root@10.188.72.42 scp -P 22 README.md root@ ...

  7. sql常用记录

    sqlserver 在已有值的列上自动增加 获取列最大的值 declare @Field int select @Field = ISNULL(Max(Field),0) from SupCsBill ...

  8. uniapp文件复制,重命名以及删除

    查找某目录下的文件 plus.io.resolveLocalFileSystemURL(        "_www/static/本地.png",            funct ...

  9. python使用SAP GUI操作SAP的几个坑

    1) 首先必须设定SAP中设置可以使用SAP GUI Script. 详细参见以下文章: https://blog.csdn.net/weixin_44447687/article/details/1 ...

  10. linux 安装 talib 的完美姿势!

    安装 TA-Lib $ wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz $ tar -zxvf ta-li ...