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
相关推荐
heimeiyingwang1 小时前
【架构实战】云原生架构:容器化与Kubernetes落地之路
云原生·架构·kubernetes
道影子4 小时前
阴阳引力多维基元:超越二进制的计算革命
人工智能·深度学习·微服务·云原生·架构
取谖慕12.1 天前
Docker容器从入门到精通
docker·容器·eureka
人间凡尔赛1 天前
K8s 十年之变:从 Cloud Native 到 AI Native,2026 年后端架构的范式革命
后端·云原生·架构
名字还没想好☜1 天前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
Cloud云卷云舒1 天前
AI Agent记忆系统:分层记忆体系的技术架构与实践
云原生·ai-native·haishandb
Ulyanov1 天前
Python雷达电子对抗仿真引擎(一):打破单体瓶颈,构建微服务与ECS架构的顶层设计
开发语言·python·微服务·云原生·架构·雷达电子对抗
spider_xcxc2 天前
基于项目实际 k8s/ 目录 YAML 文件的完整学习指南。
云原生·容器·kubernetes
张忠琳2 天前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
阿里云云原生2 天前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生