docker部署微服务

目录

docker操作命令

镜像操作命令

拉取镜像

导出镜像

删除镜像

加载镜像

推送镜像

部署

pom文件加上

在每个模块根目录加上DockerFile文件

项目根目录加上docker-compose.yml文件

打包,clean,package

服务器上新建文件夹

测试docker-compose是否安装

构建镜像

检查配置是否有问题,在新建的目录下

启动


docker操作命令

镜像操作命令

复制代码
# 查看 docker 命令及帮助
docker --help
# 查看指定命令的帮助
docker [command] --help
# 查看当前所拥有的镜像
docker images

拉取镜像

复制代码
# 拉取镜像,未指定版本则拉取最新版,latest
docker pull [ image : {version} ]
# 示例:拉取 nginx1.22版
docker pull nginx:1.22

导出镜像

复制代码
# 导出一个镜像到磁盘的指定文件,同一个镜像有多个版本时,需要指定版本号
docker save -o [file] [image]:[tag]
# 示例:将 nginx 镜像 导出到 /image/mynginx.tar 文件中
docker save -o /image/mynginx.tar nginx

删除镜像

复制代码
# 删除一个镜像,(删除镜像时必须指定版本号)
docker rmi [image]:[tag]
# 示例:删除 nginx 1.22
docker rmi nginx:1.22

加载镜像

复制代码
# 将程序的镜像文件加载到 docker 中, ( -q 表示是否输出加载的过程)
docker load -i [ file ] { -q }
# 示例:将 nginx镜像 文件加载到 docker中
docker load -i /image/mynginx.tar

推送镜像

复制代码
# 将镜像文件推送到远程
docker push -a [name]:[tag]

部署

pom文件加上

复制代码
    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在每个模块根目录加上DockerFile文件

复制代码
# 基础镜像
FROM openjdk:8
# 创建容器默认进入的目录
WORKDIR /app
# 复制jar包到容器中
COPY app.jar /app/app.jar
# 暴露端口 应该保持和源代码端口一致
EXPOSE 6000
# 启动命令
ENTRYPOINT ["java","-jar","-Xms100m","-Xmx100m"]
CMD ["app.jar"]

项目根目录加上docker-compose.yml文件

复制代码
version: "3.8"

networks:
  # 自定义docker网络名
  test:

services:
  # 定义服务名字,只要不冲突即可
  mail-gateway:
    # 镜像名字或者id
    image: mail-gateway
    # 自定义容器名字
    container_name: mail-gateway
    # 映射端口
    ports:
      - "88:88"
      # 网络
    networks:
      - test
  mail-auth:
    image: mail-auth
    container_name: mail-auth
    ports:
      - "6000:6000"
    networks:
      - test
  mail-email:
    image: mail-email
    container_name: mail-email
    ports:
      - "20000:20000"
    networks:
      - test
  mail-user:
    image: mail-user
    container_name: mail-user
    ports:
      - "10000:10000"
    networks:
      - test
  mail-common:
    image: mail-common
    container_name: mail-common
#    ports:
#      - "10000:10000"
    networks:
      - test

打包,clean,package

服务器上新建文件夹

测试docker-compose是否安装

复制代码
docker-compose --version

构建镜像

复制代码
docker build -t mail-auth /www/wwwroot/yangsaiya/project/distributed-mail/mail-auth/

检查配置是否有问题,在新建的目录下

复制代码
docker-compose config -q

启动

复制代码
docker-compose up
相关推荐
AI攻城狮2 小时前
RAG Chunking 为什么这么难?5 大挑战 + 最佳实践指南
人工智能·云原生·aigc
哈里谢顿2 天前
Kubernetes Operator核心概念、实现原理和实战开发
云原生
阿里云云原生2 天前
你的 OpenClaw 真的在受控运行吗?
云原生
阿里云云原生2 天前
5 分钟零代码改造,让 Go 应用自动获得全链路可观测能力
云原生·go
Shanyoufusu122 天前
RKE2 单节点集群安装 Rancher+ 私有镜像仓库搭建 完整教程
云原生
阿里云云原生2 天前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
云原生
AI攻城狮2 天前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
阿里云云原生6 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
阿里云云原生6 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生7 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent