Docker 部署 Dubbo 微服务

Docker 部署 Nacos 注册中心 首先需要部署 Nacos 注册中心,在开发环境中运行 Nacos 单机模式,执行以下 Docker 命令拉取镜像并运行容器: docker run -d \ --name nacos-server \ -p 8848:8848 \ -p 9848:9848 \ -e MODE=standalone \ nacos/nacos-server:2.0.2 需要注意的是,若在开发环境中使用模拟域名(配置在 /etc/hosts 中)访问 Docker 容器中的 Nacos 服务,当开启了 socks 等代理服务时,可能导致访问失败。若使用了如 clash 等代理服务,可以在配置文件中关闭其 dns 功能,并配置该模拟域名为直连: dns: enable: false ... rules: - DOMAIN-SUFFIX,live.zjxjwxk.com,🎯 全球直连 若部署成功,可以通过 localhost:8848/nacos/index.html 访问 Nacos 控制台页面。 Maven 插件配置 在需要部署的微服务的 pom.xml 文件中配置如下插件,用于在 Maven 打包的同时构建 Docker 镜像: <build> <finalName>${artifactId}-docker</finalName> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.0</version> <executions> <!--当mvn执行install操作的时候,执行docker的build--> <execution> <id>build</id> <phase>install</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageTags> <imageTag>${project.version}</imageTag> </imageTags> <imageName>${project.build.finalName}</imageName> <!--指定Dockerfile文件的位置--> <dockerDirectory>${project.basedir}/docker</dockerDirectory> <!--指定jar包路径,这里对应Dockerfile中复制jar包 到docker容器指定目录配置,也可以写到Dockerfile中--> <resources> <resource> <targetPath>/</targetPath> <!--将下边目录的内容,拷贝到docker镜像中--> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 编写 Dockerfile 文件 在需要部署的微服务目录下创建 docker 文件夹,并在此文件夹下创建如下 Dockerfile 文件(路径与 pom.xml 中的 ${project.basedir}/docker 一致): ...

January 3, 2026 · 2 min

微服务容器化系列(1):服务编排前奏

服务 Docker 化 修改项目配置 由于镜像运行时 MySQL 数据库所在的主机地址是动态的,所以将项目中的 MySQL 数据库地址和 Zookeeper 注册中心地址配置为动态变量: spring: dubbo: registry: zookeeper://${zk.address}:2181 datasource: url: jdbc:mysql://{mysql.address}:3306/cinema?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 获取 Java 镜像 docker pull openjdk:8-jre 打包 Maven 项目 在项目根目录下,执行 Maven 的清除和打包命令(跳过测试): mvn clean && mvn package -Dmaven.test.skip=true 这样就会在 target 目录下生成 jar 包(Spring Boot 项目)。 编写 Dockerfile 在 user 子模块的根目录下,创建 Dockerfile 文件,并编辑如下,Dockerfile 文件用于构建 Docker 镜像: FROM openjdk:8-jre MAINTAINER zjxjwxk zjxjwxk@gmail.com COPY target/user.jar /user.jar ENTRYPOINT ["java", "-jar", "/user.jar"] 构建项目 Docker 镜像 docker build -t user:latest . 编写 build 脚本 在和 Dockerfile 同一目录下,创建一个 build.sh 脚本,用于打包和构建 Docker 镜像: ...

June 4, 2020 · 6 min