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
相关推荐
Star(up up up)2 小时前
Redis Windows 安装教程:使用Windows 的 Redis 压缩包
redis·笔记·学习·程序人生·云原生·学习方法·改行学it
分布式存储与RustFS6 小时前
Terraform 状态文件老在本地丢、并发还撞锁:把 state 锁进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
对象存储与RustFS7 小时前
Jenkins 的构建产物别堆在控制器磁盘:用 RustFS 当它的 S3 工件仓库
后端·docker·云原生
罗小爬EX1 天前
Helm 从概念到实战:以一个普通 Web 应用为例
云原生·helm
分布式存储与RustFS1 天前
镜像仓库的层别只堆本地盘:用 RustFS 给 Harbor 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
分布式存储与RustFS1 天前
工作流脚本和依赖 JAR 散在各节点本地盘:用 DolphinScheduler 资源中心接到 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
Eyfcom1 天前
〖物流云原生实战 01〗K8s Operator 在物流定时任务中的实践:从“裸 CronJob”到“声明式任务编排”
云原生·物流管理系统·物流云原生实战
阿里云云原生2 天前
阿里云智能体白皮书开源进展
云原生
阿里云云原生2 天前
万联智策基于 AgentCore 构建数字员工团队,800+智能体规模化落地
云原生
分布式存储与RustFS2 天前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准