欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

Docker Compose与Docker镜像仓库详解

时间:2025-12-12 23:30:03|栏目:其它服务器|点击:

目录
  • 1.Docker Compose
    • 1.1.初识DockerCompose
    • 1.2.安装Docker Compose
    • 1.3.部署微服务集群
      • 1.3.1.compose文件
      • 1.3.2.修改微服务配置
      • 1.3.3.打包
      • 1.3.4.拷贝jar包到部署目录
      • 1.3.5.部署
  • 2.Docker镜像仓库
    • 2.1.搭建私有镜像仓库
      • 2.2.推送、拉取镜像

      1.Docker Compose

      Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!

      Docker Compose与Docker镜像仓库详解

      1.1.初识DockerCompose

      Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:

      version: "3.8"
       services:
        mysql:
          image: mysql:5.7.25
          environment:
           MYSQL_ROOT_PASSWORD: 123 
          volumes:
           - "/tmp/mysql/data:/var/lib/mysql"
           - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
        web:
          build: .
          ports:
           - "8090:8090"

      上面的Compose文件就描述一个项目,其中包含两个容器:

      • mysql:一个基于mysql:5.7.25镜像构建的容器,并且挂载了两个目录
      • web:一个基于docker build临时构建的镜像容器,映射端口时8090

      Docker Compose的详细语法参考官网:Compose file specification

      其实Docker Compose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异。

      1.2.安装Docker Compose

      参考安装Docker

      1.3.部署微服务集群

      需求:将之前的cloud-demo微服务集群利用Docker Compose部署

      实现思路

      ① 根据集群建立的cloud-demo文件夹,编写好了docker-compose文件

      ② 修改自己的cloud-demo项目,将nacos地址都命名为docker-compose中的服务名

      ③ 使用maven打包工具,将项目中的每个微服务都打包为app.jar

      ④ 将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中

      ⑤ 将cloud-demo上传至虚拟机,利用docker-compose up -d来部署

      1.3.1.compose文件

      根据集群建立的cloud-demo文件夹,编写好了docker-compose文件,而且每个微服务都准备了一个独立的目录:

      Docker Compose与Docker镜像仓库详解

      内容如下:

      version: "3.2"
      
      services:
        userservice:
          build: ./user-service
        orderservice:
          build: ./order-service
        gateway:
          build: ./gateway
          ports:
            - "10010:10010"

      可以看到,其中包含4个service服务:

      • nacos:作为注册中心和配置中心
        • image: nacos/nacos-server: 基于nacos/nacos-server镜像构建
        • environment:环境变量
        • MODE: standalone:单点模式启动
        • ports:端口映射,这里暴露了8848端口
      • userservice、orderservice、gateway:都是基于Dockerfile临时构建的

      查看微服务目录,可以看到都包含Dockerfile文件:

      Docker Compose与Docker镜像仓库详解

      内容如下:

      FROM java:openjdk-8u111-alpine
      COPY ./gateway.jar /tmp/app.jar
      ENTRYPOINT java -jar /tmp/app.jar
      FROM java:openjdk-8u111-alpine
      COPY ./order-service.jar /tmp/app.jar
      ENTRYPOINT java -jar /tmp/app.jar
      FROM java:openjdk-8u111-alpine
      COPY ./user-service.jar /tmp/app.jar
      ENTRYPOINT java -jar /tmp/app.jar

      1.3.2.修改微服务配置

      因为微服务将来要部署为docker容器,而容器之间互联不是通过IP地址,而是通过容器名。这里我们将order-serviceuser-servicegateway服务的nacos地址都修改为基于容器名的访问。

      如下所示:

      spring:
        application:
          name: orderservice
        cloud:
          nacos:
            server-addr: nacos:8848 # nacos服务地址

      1.3.3.打包

      接下来需要将我们的每个微服务都打包。

      可以通过修改pom.xml中的打包名称来实现,每个微服务都需要修改:

      
        
        gateway
        
          
            org.springframework.boot
            spring-boot-maven-plugin
          
        
      

      打包后:

      Docker Compose与Docker镜像仓库详解

      1.3.4.拷贝jar包到部署目录

      编译打包好的jar包文件,需要放到Dockerfile的同级目录中。注意:每个微服务的jar包放到与服务名称对应的目录,别搞错了。

      user-service

      Docker Compose与Docker镜像仓库详解

      order-service

      Docker Compose与Docker镜像仓库详解

      gateway

      Docker Compose与Docker镜像仓库详解

      1.3.5.部署

      最后,我们需要将文件整个cloud-demo文件夹上传到虚拟机中,理由DockerCompose部署。

      上传到任意目录:

      Docker Compose与Docker镜像仓库详解

      部署:

      进入cloud-demo目录,然后运行下面的命令:

      docker-compose up -d

      2.Docker镜像仓库

      2.1.搭建私有镜像仓库

      参考安装Docker

      2.2.推送、拉取镜像

      推送镜像到私有镜像服务必须先tag,步骤如下:

      ① 重新tag本地镜像,名称前缀为私有仓库的地址:192.168.0.111:8080/

      docker tag nginx:latest 192.168.0.111:8080/nginx:1.0 

      ② 推送镜像

      docker push 192.168.0.111:8080/nginx:1.0 

      ③ 拉取镜像

      docker pull 192.168.0.111:8080/nginx:1.0 

      上一篇:Docker compose搭建ELK服务基本使用

      栏    目:其它服务器

      下一篇:Docker上部署FastApi的示例代码

      本文标题:Docker Compose与Docker镜像仓库详解

      本文地址:https://zz.feitang.co/server/30426.html

      广告投放 | 联系我们 | 版权申明

      申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

      如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

      联系QQ:257218569 | 邮箱:257218569@qq.com

      Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号