Spring Boot教程34——Docker入门

Spring Data介绍
Spring Data项目是Spring用来解决数据访问问题的一揽子解决方案。Spring Data包含了大量关系型数据库及非关系型数据库的数据访问解决方案。Spring Data使我们可以快速且简单地使用普通的数据访问技术及新的数据访问技术。

Spring Data包含的子项目如下:
Spring Data JPA

org.springframework.data
spring-data-jpa
1.8.1.RELEASE

Spring Data MongoDB

org.springframework.data
spring-data-mongodb
1.7.1.RELEASE

Spring Data Neo4J

org.springframework.data
spring-data-neo4j
3.3.1.RELEASE

Spring Data Redis

org.springframework.data
spring-data-redis
1.5.1.RELEASE

Spring Data Solr

org.springframework.data
spring-data-solr
1.4.1.RELEASE

Spring Data Hadoop

org.springframework.data
spring-data-hadoop
2.2.0.RELEASE

Spring Data GemFire

org.springframework.data
spring-data-gemfire
1.6.1.RELEASE

Spring Data REST

org.springframework.data
spring-data-rest-webmvc
2.3.1.RELEASE

Spring Data JDBC Extensions

org.springframework.data
spring-data-oracle
1.1.0.RELEASE

Spring Data CouchBase

org.springframework.data
spring-data-couchbase
1.3.1.RELEASE

Spring Data Elasticsearch

org.springframework.data
spring-data-elasticsearch
1.2.1.RELEASE

Spring Data Cassandra

org.springframework.data
spring-data-cassandra
1.2.1.RELEASE

Spring Data DynamoDB

opensourceagility-release
http://repo.opensourceagility.com/release

org.springframework.data
spring-data-dynamodb
1.0.2.RELEASE

Spring Data为我们使用统一的API来对上述的数据库技术进行数据访问操作提供了支持。这是Spring通过提供Spring Data Commons项目来实现的,它是上述各种Spring Data项目的依赖。Spring Data Commons让我们在使用关系型或非关系型数据访问技术时都使用基于Spring的统一标准,该标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作。

此处介绍下Spring Data Commons的一个重要概念:Spring Data Repository抽象。使用Spring Data Repository可以极大地减少数据访问层的代码。Spring Data Repository抽象的根接口时Reposityory接口:

package org.springframework.data.repository;
import java.io.Serializable;
public interface Repository<T,ID extends Serializable>{
}

从源码中可以看出,它接受领域类(JPA为实体类)和领域类的id类型作为类型参数。
它的子接口CrudRepository定义了和CRUD操作相关的内容,CrudRepository的子接口PagingAndSortingRepository定义了与分页和排序操作相关的内容。

不同的数据访问技术也提供了不同的Repository,如Spring Data JPA有JpaRepository、Spring Data MongoDB有MongoRepository。

Spring Data项目还给我们提供了一个激动人心的功能,即可以根据属性名进行计数、删除、查询方法等操作。如:

public interface PersonRepository extends Repository<Person,Long>{
    //按照年龄计数
    Long countByAge(Integer age);
    //按照名字删除
    Long deleteByName(String name);
    //按照名字查询
    List<Person> findByName(String name);
    //按照名字和地址查询
    List<Person> findByNameAndAddress(String name,String address);
}

Docker入门
Docker是一个轻量级容器技术,类似于虚拟机技术。Docker是直接运行在当前操作系统之上,而不是运行在虚拟机中,但是也实现了虚拟机技术的资源隔离,性能远远高于虚拟机技术。
Docker支持将软件编译成一个镜像(image),在这个镜像里做好对软件的各种配置,然后发布这个镜像,使用者可以运行这个镜像,运行中的镜像称之为容器,容器的启动是非常快的(秒级),有点像ghost。
目前各大主流云计算平台都支持Docker容器技术,大有统一云计算的趋势。
目前主流的软件以及非主流的软件大部分都有人将其封装成Docker镜像,我们只需要下载Docker镜像,然后运行镜像就可以快速获得已做好配置可运行的软件。
特别指出的是,Docker并不是为开发测试方便而提供的小工具,而是可以用于实际生产环境的一种极好的部署方式。

1.Docker的安装

在Mac下安装Docker,只需要安装Docker.dmg即可。
启动docker后,可以在命令行中通过"docker -v"查看版本来验证安装成功。

2.Docker常用命令及参数

1>.Docker镜像命令

镜像检索
Docker的镜像都放置在Docker官网的Docker Hub上,地址是https://registry.hub.docker.com。可在该网站搜索镜像,也可以用命令“docker search 镜像名”(如:docker search redis)检索。

镜像下载
docker pull 镜像名

查看本地镜像列表
docker images

删除镜像
docker rmi image-id

删除所有镜像
docker rmi $(docker images -q)

2>.Docker容器命令

运行镜像为容器
docker run --name container-name -d image-name
其中--name市委容器取个名称,-d表示detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作。如:
docker run --name test-redis -d redis

查看运行中的容器列表
docker ps
通过下列命令可查看运行和停止状态的容器:
docker ps -a

停止容器
通过容器名称或容器ID停止容器
docker stop container-name/container-id
如:
docker stop test-redis

启动容器
通过容器名称或容器ID启动容器
docker start container-name/container-id
如:
docker start test-redis

端口映射
Docker容器中运行的软件所使用的端口,需要映射到当前主机的端口上才能访问。Docker的端口映射通过一个-p参数来实现。例如,我们将Redis容器的6379端口映射到本机的6378端口:
docker run -d -p 6378:6379 --name port-redis redis

删除容器
docker rm container-id

删除所有容器
docker rm $(docker ps -a -q)

查看当前容器日志
docker logs container-name/container-id
如:
docker logs port-redis

登陆容器
运行中的容器其实是一个功能完备的Linux操作系统,所以我们可以像常规的系统一样登录并访问容器。
我们可以使用如下命令,登录访问当前容器,登陆后我们可以在容器中进行常规的Linux系统操作命令,还可以使用exit命令退出登录:
docker exec -it container-id/container-name bash

3.下载常用Docker镜像

docker pull wnameless/oracle-xe-11g
docker pull mongo
docker pull redis:2.8.21
docker pull cloudesire/activemq
docker pull rabbitmq
docker pull rabbitmq:3-management

4.异常处理

若出现命令不能执行的错误,可直接使用下面命令登录VirtualBox虚拟机:
boot2docker ssh
登录虚拟机后,再执行常规命令。

时间: 2024-12-29 07:00:17

Spring Boot教程34——Docker入门的相关文章

Spring Boot教程(一):入门

使用maven构建项目 1. 先在系统中安装好开发环境,本教程使用Eclipse Photon 和 Java JDK 1.8 进行开发 2. 访问连接https://start.spring.io/,选择"Switch to the full version.",输入项目的基本信息,Java Version选8,如下图,最后点击Generate Project下载SpringBoot的基本结构,并解压 3. 打开Eclipse,选File -> Import -> Mave

Spring Boot 2.x 实战入门

"老齐的IT脱口秀,说人话,讲编程." 国内一线培训机构的金牌讲师齐毅诚意录制,没有忽悠,案例实战.<Spring Boot 2.x 实战入门>,老齐会把15年经验揉到实战手把手陪你学习.只要你需要,所有PPT和源码都给你,一切都是为了让你学的更轻松.希望老齐能成为你进入IT行业的引路人!课程完全免费,没有套路,也不会骗你去培训机构,只是一个老司机希望能让你少走点弯路!!课程地址: http://edu.51cto.com/course/13147.html 课程章节:第1

[公益课程]Spring Boot 2.x 实战入门

[公益内容]Spring Boot 2.x 实战入门课程内容 http://edu.51cto.com/course/13147.html 第1章Spring Boot 2.X快速入门45分钟1节 1-1Spring Boot 2.x 快速上手[免费观看]45:51第2章Spring Boot 常用配置1小时44分钟3节 2-1Spring Boot Web常用配置[免费观看]33:15 2-2日志配置[免费观看]28:59 2-3环境切换与自定义配置[免费观看]41:59第3章Thymelea

【视频分享】Spring Boot 教程全集

# [视频分享]Spring Boot 教程全集 ## 获取方式 **方式一:****链接:**[百度网盘](https://pan.baidu.com/s/137KFcoCE-i75vA8FE_OYFQ)==关注公众号极客萧(xiaoyxyj),并且回复关键字:springboot 即可获取下载链接和提取码(注意大小写别错)====如果链接失效,请及时联系我== 原文地址:https://www.cnblogs.com/icefirebug/p/11784818.html

Spring Boot 2.0.1 入门教程

简介 Spring Boot是Spring提供的一套基础配置环境,可以用来快速开发生产环境级别的产品.尤其适合开发微服务架构,省去了不少配置麻烦.比如用到Spring MVC时,只需把spring-boot-starter-web依赖添加到Maven依赖中即可.另外它还有如下特性: 创建独立的Spring项目 内置Tomcat, Jetty,Undertow 初始POM配置文件以简化Maven配置 尽可能的自动配置Spring 提供生产环境功能,如统计,健康检查和外部配置 无需XML配置和代码生

spring boot教程 网盘下载

教程下载地址:https://u18103887.ctfile.com/fs/18103887-309551343 I. Spring Boot文档1. 关于本文档2. 获取帮助3. 第一步4. 使用Spring Boot5. 了解Spring Boot特性6. 迁移到生产环境7. 高级主题II. 开始8. Spring Boot介绍9. 系统要求9.1. Servlet容器10. Spring Boot安装10.1. 为Java开发者准备的安装指南10.1.1. Maven安装10.1.2.

Spring Boot教程35——Spring Data JPA

Hibernate是数据访问解决技术的绝对霸主.JPA是由Hibernate主导的一个基于O/R映射的标准规范.O/R映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无须关注数据库相关的技术. Spring Data JPA介绍 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义一个继承JpaRepository的接口即可: public interface PersonRepository extends Jpa

Spring Boot 教程系列学习

Spring Boot基础教程1-Spring Tool Suite工具的安装 Spring Boot基础教程2-RESTfull API简单项目的快速搭建 Spring Boot基础教程3-配置文件详解:Properties和YAML Spring Boot基础教程4-配置文件-多环境配置 Spring Boot基础教程5-日志配置-logback和log4j2 源码地址:https://github.com/roncoo/spring-boot-demo 1.工具下载地址: Eclipse:

Spring Boot教程 - 1. 简介

一.导览 本文主要介绍以下几部分: 1. 什么是Spring Boot? 2. 为什么使用Spring Boot? 3. Spring Boot提供哪些功能? 4. 如何使用Spring Boot? 5. Spring Boot有哪些不足? 二.什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 该框架使用了特定的方式(继承starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义