我们都知道Compose是docker三剑客之一,主要负责实现对 Docker 容器集群的快速编排。前面的文章也介绍了docker-compose的使用方法,今天分享一下docker-compose的实战,让读者更好的理解docker-compose。

1. 从github获取dubbo-admin源码并修改内容

目前dubbo-admin源码分支默认是develop,而我们需要获取的是master分支,所以拉取代码的时候需要指定一下分支名:

$ git clone -b master https://github.com/apache/dubbo-admin.git

由于github下载代码的速度太慢了,笔者也是花费了很多时间才下载下来,故提供一下下载地址:

链接:https://pan.baidu.com/s/1NQsQJ6X0IPa7CwZvRY4PYA

提取码:25ig

源码下载好后,需要修改一下配置文件 ../dubbo-admin/dubbo-admin/src/main/resources/application.properties,进行如下修改:

## 将 127.0.0.1 修改为 zookeeperdubbo.registry.address=zookeeper://zookeeper:2181

然后保存退出即可。

2. 将dubbo-admin源码打包

下载好源码过后,进入dubbo-admin目录,执行命令:

$ mvn clean package -Dmaven.test.skip=true

命令执行完后,会在dubbo-admin/dubbo-admin/target目录下生成一个jar包:dubbo-admin-0.0.1-SNAPSHOT.jar。

如果你使用的是Windows的Powershell,执行上面的命令可能会报错:Unknown lifecycle phase ".test.skip=true".

只需要将-Dmaven.test.skip=true加上单引号即可:

$ mvn clean package '-Dmaven.test.skip=true'

3. 构建dubbo-admin镜像

首先准备一个空文件夹,里面放两个文件,一个Dockerfile,一个就是第二步生成的jar包dubbo-admin-0.0.1-SNAPSHOT.jar。其中Dockerfile内容如下:

FROM openjdk:8-jdk-alpineVOLUME /tmpADD dubbo-admin-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]

这里面的内容很简单,不多做介绍,如果有疑惑的移步:Dockerfile文件常用指令详解

文件准备好后,在Dockerfile所在目录执行命令:

$ docker build -t dubbo-admin:1.0 .

注意后面有个小点点。

如果构建成功,执行命令docker images就能看到你的镜像了

$ docker images

4. 编写docker-compose.yml模板文件

docker-compose.yml内容如下:

version: '3.4' services:  zk_server:    image: zookeeper:3.4    ports:      - 2181:2181  dubbo-admin:    image: dubbo-admin:1.0    links:      - zk_server:zookeeper    depends_on:      - zk_server    ports:      - 7001:7001

注意:冒号(:)和短横线(-)后面都需要加一个空格,不然可能会出问题。

如果对docker-compose.yml模板文件有疑惑的,请移步:docker-compose模板文件常用指令

5. 运行

在docker-compose.yml所在目录运行命令:

$ docker-compose up

如果没有其他问题的话,应该能正常的看到日志输出。

6. 验证dubbo-admin正常运行

在浏览器输入ip:7001即可进入dubbo-admin后台,初始用户名/密码是:root/root

扩展

在编写docker-compose.yml之前我们手动的构建了dubbo-admin的镜像,也就是上文的第三步,其实这一步可以省略,使用的就是compose模板文件的build指令。修改后的docker-compose.yml文件内容如下:

version: '3.4'services:  zk_server:    image: zookeeper:3.4    ports:      - 2181:2181  dubbo-admin:    build:      context: .      dockerfile: Dockerfile    links:      - zk_server:zookeeper    depends_on:      - zk_server    ports:      - 7001:7001

有兴趣的读者可以自行尝试一下。

好了,关于docker-compose的实践篇介绍到此为止。笔者这里只是抛砖引玉,在真正的开发过程中需要读者多多思考,学技术不难,难在于如何合理的使用技术。我是东方雨倾,如果您喜欢我的文章,希望点个关注多多执行哦。


dockercompose对外暴露端口 docker compose 端口_docker