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
相关推荐
susu10830189111 天前
ubuntu系统删除 Docker 启动的所有容器、卸载 Docker 以及清理 Docker 相关保留路径
ubuntu·docker·eureka
柠檬汁Dev1 天前
如何用云原生开发,把新项目启动从1天缩短到3分钟
云原生
汪碧康1 天前
【k8s-1.34.2安装部署】二.kubernets软件、证书、配置、脚本等文件准备
云原生·容器·kubernetes·xkube·k8s管理平台·k8s安装部署·k8s dashboard
ldj20201 天前
docker-compose对比k8s
云原生·容器·kubernetes
啊勇的编程论坛1 天前
DeepSeek + Kubernetes 全栈运维赋能指南:智能化云原生运维新时代
运维·云原生·容器·kubernetes·云运维
摆烂z1 天前
k8s环境脚本
云原生·容器·kubernetes
没有bug.的程序员1 天前
Sentinel 流控原理深度解析:从SlotChain到热点参数限流的设计哲学
jvm·微服务·云原生·eureka·sentinel·服务发现
阿里云云原生2 天前
RUM 助力 iOS 应用稳定性:从异常捕获到堆栈还原的全流程分析
人工智能·阿里云·ios·云原生·rum
VermiliEiz2 天前
二进制文件方式部署k8s(3)
云原生·容器·kubernetes·containerd
企鹅侠客2 天前
使用k8s集群调度GPU
云原生·容器·kubernetes