Docker安装Apollo

Apollo是携程框架部门开源的一款分布式配置中心。它提供了一套完整的配置管理、发布和运行监控的解决方案。在实际项目中,我们经常会遇到配置的问题,特别是在微服务架构中,配置的管理和发布变得更加复杂。Apollo的出现解决了这个问题,使得我们能够轻松地管理和发布配置。

本文将介绍如何使用Docker安装和配置Apollo,并通过代码示例演示其基本用法。

1. Docker安装

首先,我们需要安装Docker。Docker是一个开源的容器化平台,能够方便地打包、发布和运行应用程序。以下是在Ubuntu系统上安装Docker的命令:

sudo apt update
sudo apt install docker.io

安装完成后,我们可以使用以下命令验证Docker是否成功安装:

docker --version

2. 下载Apollo镜像

接下来,我们需要下载Apollo的Docker镜像。Apollo官方提供了一个Docker镜像,我们可以从Docker Hub上下载。使用以下命令下载最新版本的Apollo镜像:

docker pull apolloconfig/apollo-portal

下载完成后,我们可以使用以下命令验证Apollo镜像是否下载成功:

docker images

3. 运行Apollo容器

下载完成Apollo镜像后,我们可以使用以下命令运行Apollo容器:

docker run -d -e DEV_META=http://your-apollo-meta-server:8080 -p 8070:8070 --name apollo-portal apolloconfig/apollo-portal

以上命令中的DEV_META环境变量指定了Apollo Meta Server的地址,我们需要将其替换为实际的地址。-p参数将容器的8070端口映射到主机的8070端口,这样我们就可以通过主机的8070端口访问Apollo界面。--name参数指定了容器的名称,我们可以根据需要自定义。

运行成功后,我们可以使用以下命令验证Apollo容器是否正常运行:

docker ps

4. 访问Apollo界面

在浏览器中访问http://localhost:8070,即可打开Apollo的管理界面。默认情况下,我们需要登录才能访问管理界面。可以使用以下默认账号登录:

  • 账号:apollo
  • 密码:admin

登录后,我们可以进行应用的创建、配置的管理和发布等操作。

5. 使用Apollo配置

在应用中使用Apollo配置非常简单。首先,我们需要在应用中引入Apollo的依赖。以下是一个Java项目使用Maven引入Apollo依赖的示例:

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.8.0</version>
</dependency>

接下来,在应用的配置文件中配置Apollo的相关信息。以下是一个Spring Boot应用的配置文件示例:

spring.application.name=my-app
spring.profiles.active=dev
apollo.meta=http://your-apollo-meta-server:8080

在应用中使用Apollo配置非常简单。我们只需要在需要使用配置的地方注入Config对象,并通过getProperty方法获取配置的值。以下是一个Java代码示例:

import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;

public class MyApp {
    public static void main(String[] args) {
        Config config = ConfigService.getAppConfig();
        String myConfig = config.getProperty("my-config", "default value");
        System.out.println(myConfig);
    }
}

在以上示例中,my-config是配置的Key,default value是默认值。如果在Apollo中找不到该配置,将使用默认值。

示例应用

为了更好地理解Apollo的使用,我们可以通过一个示例应用演示其基本用法。以下是一个使用Spring Boot和Apollo的示例应用:

@SpringBootApplication
public class MyApp {
    @Value("${my-config}")
    private String myConfig;

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }