【Docker】Maven集成Docker插件后的命令行笔记

该博客整理自《Spring 微服务实战(第二版)》,介绍使用 Docker 和 Maven 构建与运行镜像。搭建需 Docker 的 vm 环境、Spring Boot 及 Maven 插件支持。阐述了命令行分类,还提及 Dockerfile 和 docker - compose.yml 的作用,指出使用 Docker 可方便构建数据库环境及编排容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

整理至《Spring 微服务实战(第二版)》

环境

  • 需要Docker 的vm环境(安装 Docker Desktop 即可)
  • Spring Boot
  • Maven 插件支持
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!-- This plugin is used to create a docker image and publish the image to docker hub-->
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>dockerfile-maven-plugin</artifactId>
				<version>1.4.13</version>
				<configuration>
					<repository>${docker.image.prefix}/${project.artifactId}</repository>
	                <tag>${project.version}</tag>
					<buildArgs>
						<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
					</buildArgs>
				</configuration>
				<executions>
					<execution>
						<id>default</id>
						<phase>install</phase>
						<goals>
							<goal>build</goal>
							<goal>push</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>

分类

命令行以docker 打头的属于原生docker支持
命令行以mvn 打头的属于maven 集成 docker 后的打包能力,其中还需要docker的规范支持

  • Dockerfile

    用于自动完成镜像创建过程

  • docker-compose.yml > 可以将多个容器作为一个服务运行

    可以模拟不同的环境,如书中的PostgreSQL数据源环境。

构建docker镜像

mvn clean package dockerfile:build # 确保引入dockerfile-maven-plugin插件

运行docker镜像

docker-compose -f docker/docker-compose.yml up # 

随笔

docker-compose 的好处:

  • 对于数据库这种体积稍大的环境也能在docker中央仓库找到镜像,以声明式的方式构建到自己的环境中去(服务自己微服务的镜像)
  • 可以让自己多个容器(一个dockerfile声明一个容器)编排在一起,如环境变量的断言 :
  licensingservice:
    image: ostock/licensing-service:0.0.2-SNAPSHOT
    depends_on:
      database:
        condition: service_healthy
      configserver:
        condition: service_started

在这里插入图片描述
在这里插入图片描述

### 运维 Docker 笔记 #### Docker 简介 Docker 是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化[^1]。 #### 安装 Docker 对于不同操作系统上的安装方法有所不同: - **Windows**: 可通过官方提供的 Docker Desktop 来简化安装过程。 - **macOS**: 同样推荐使用 Docker Desktop。 - **Linux**: 不同发行版有不同的具体步骤,通常涉及设置仓库和安装软件包两步[^2]。 #### 基础概念 理解几个核心术语有助于更好地掌握 Docker 的使用方式: - **镜像(Image)**: 类似于传统计算机中的只读模板。 - **容器(Container)**: 镜像的一个运行实例;当启动某个镜像时即创建了一个新的容器- **仓库(Repository)**: 存储库用于保存多个版本的镜像文件. #### 日常管理命令 熟悉一些常用的 CLI 操作可以帮助管理员更高效地维护集群和服务: - `docker images` 列出本地已有的所有镜像; - `docker ps` 查看当前正在执行的任务列表; - 创建新容器可以通过 `docker run IMAGE_NAME` 实现. #### 自动化与 CI/CD 整合 利用 Jenkins 和 Maven 工具链,在 Linux 上搭建一套完整的持续集成流水线来自动部署 Java 应用程序成为可能。这不仅提高了工作效率还减少了人为错误的发生几率[^4]. #### 网络配置技巧 由于采用了基于 Linux 内核特性设计而成的独特网络模型——桥接模式,默认情况下每个宿主机内部都会存在名为 "docker0" 的虚拟网卡负责连接各个独立运作着的服务进程之间相互通讯的需求。这种架构下的性能损耗极低而且易于管理和扩展[^3]. ```bash # 示例:查看本机存在的所有网络接口及其状态信息 ifconfig -a ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值