pomhub(不搞虚的!快速把你拉入Docker 的门里 | 原力
作者 | 桌前明月
责编 | 夕颜
出品 | CSDN(IDCSDNnews)
前言
学习一门东西你要先搞懂怎么使用它。以及使用它的一些操作用语。就好比你去驾校学车,教练给你讲这个是方向盘、这个是油门、这个是刹车一定要记住,关键时刻可以保命。然后开始教你怎么让车启动并慢慢跑起来。本文通过 Docker 部署 SpringBoot 带你快速了解 Docker 简单使用 Demo 级别操作。谨以此文献给刚入门的小白,大牛勿喷。
通过本文你将了解到如下内容
Docker 是什么以及 Docker专用名词
Docker 安装
快速创建SprngBoot项目
SprngBoot项目 Docker化
了解 Docker 以及相关的专有名词
Docker 是将程序隔离打包的一种容器技术,也被称为“轻量级”虚拟化技术。
说到 Docker 就不得不提三个知识点镜像、容器、仓库Docker 必学的三要素,那它们具体代码什么意思呢?听我给你慢慢道来。
镜像就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。可以理解成启动容器的模板
容器容器,其实是一种特殊的进程而已。Docker 为该进程划分一个独立空间
仓库是用来存储镜像的,可以理解成专门存储镜像的仓库。
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
Dockerfile:可以通过构建文件创建自定义镜像。
实战操作
安装Docker
可以直接去 hub.docker/ 下载安装包进行下载安装,前提是需要注册一个账号。也可以直接参考菜鸟的安装教程
windows 安装教程
runoob/docker/windows-docker-install.html
win7、win8 系统 和 win10 系统安装配置不同具体请参考菜鸟安装教程
MacOS Docker 安装
runoob/docker/macos-docker-install.html
需要注意的是 菜鸟教程 Mac 安装教程提供了2个安装包连接分别为edge 和 stable,这2个安装包区别如下
edge尝鲜版 每个月发布一次 可能存在一定问题
stable稳定版 每个季度更新一次 相对稳定的版本
初学者建议下载stable进行安装。
配置Docker镜像加速
点击任务栏中docker图标然后点击 Settings 后如下图所示配置镜像加速地址
其他系统配置方式请菜鸟教程参考
runoob/docker/docker-mirror-aeleration.html
可选的镜像加速地址如下
Docker官方提供的中国镜像库地址
registry.docker-七牛云加速器地址
reg-mirror.qiniu网易的镜像地址
hub-mirror.c.163阿里云镜像地址每个阿里云账号提供一个唯一的地址
搭建SpringBoot 项目并将其 Docker化
第一步创建 maven 项目然后引入 SpringBoot的 Parent 依赖。
parent groupId.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.1.0.RELEASE/version relativePath/ /parent
第二步引入 SpringBoot web stater 依赖。
dependency groupId.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency
第三步在 build 标签内添加 finalName标签配置SpringBoot项目可执行jar包的名称。具体代码如下
finalNamedemo/finalName
pom.xml 具体内容如下
?xml version="1.0" encoding="UTF-8"?project xmlns="maven.apache/POM/4.0.0" xmlns:xsi="w3/2001/XMLSchema-instance" xsi:schemaLocation="maven.apache/POM/4.0.0 maven.apache/xsd/maven-4.0.0.xsd" modelVersion4.0.0/modelVersion parent groupId.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.1.0.RELEASE/version relativePath/ !-- lookup parent from repository -- /parent groupId.example/groupId artifactIddemo/artifactId version1.0-SNAPSHOT/version
dependencies dependency groupId.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency
dependency groupId.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency
/dependencies
build finalNamedemo/finalName plugins plugin groupId.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin !-- 5、添加插件指定jdk -- plugin artifactIdmaven-piler-plugin/artifactId configuration source1.8/source target1.8/target forktrue/fork /configuration /plugin /plugins /build/project
第四步创建 SpringBoot的启动类 在src/main/java 目录下,具体代码如下
package .zhuoqianmingyue.demo;
import .springframework.boot.SpringApplication;import .springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplicationpublic class DemoApplication {
public static void main(String args) {SpringApplicationn(DemoApplication.class, args); }
}
第五步创建用于测试的Controller,具体代码如下
package .zhuoqianmingyue.demontroller;
import .springframework.web.bind.annotation.GetMapping;import .springframework.web.bind.annotation.RestController;
@RestControllerpublic class HelloDockerController { @GetMapping("/hello") public String hello{ return "hello docker"; }}
第六步在demo项目中创建 Dockerfile,具体内容如下
# FROM 自定义的镜像基于 java:8镜像创建。FROM java:8# MAINTAINER 作者的信息MAINTAINER zhuoqianmingyue ljk126wy@126# COPY 拷贝target目录下的demo.jar 到自定义镜像中。COPY target/demo.jar /demo.jar# 运行程序执行的命令,相当于在命令窗口中执行 java -jar demo.jarENTRYPOINT
第七步在 demo项目中创建构建镜像的脚本 build.sh,具体内容如下
#!/usr/bin/env bash# 将SpringBoot 项目打包mvn package# 根据当前目录下Dockerfile配置文件创建镜像docker build -t demo:latest .
demo:latest demo 表示镜像的名称,latest 表示版本号。
项目的目录结构如下图所示
第八步选中 build.sh 然后右击选择Run build.sh 执行脚本。
执行完毕后可以通过 docker images 查看生成的镜像。
通过 demo:latest 镜像启动一个容器执行的命令如下
docker run -idt -p 8080:8080 demo:latest
docker run 依靠镜像运行容器
-i 以交互模式运行容器,通常与 -t 使用。
-t 为容器重新分配一个伪输入终端,通常与 -i 使用。
-d 后台运行容器,并返回容器ID。
-p 指定端口映射,格式为主机(宿主)端口:容器端口。
demo:latest 镜像名称镜像版本号。
docker ps 查看正在运行的镜像
CONTAINER_ID:容器ID
IMAGE:具体的镜像
COMMOND:运行程序执行的命令
STATUS:容器的状态
PORTS:容器映射的端口
NAMES:容器的名称
通过 docker log -f 容器ID 查看 SpringBoot 项目启动日志,具体操作如下图。
Windows通过 Docker 启动一个容器可以理解成创建了一个Linux的虚拟机,并在该虚拟机中运行我们的程序。可以通过 docker exec -it 容器ID /bin/bash 进入容器(也可以理解成进入Linux的虚拟机)。执行 curl localhost:8080/hello 在虚拟机本地访问运行SpringBoot 项目,具体操作如下
因为Docker 相当于创建了一个Linux的虚拟机,所以直接通过游览器执行 localhost是访问不了的。因为这个问题各种百度大部分介绍都是通过执行docker-machine ip default 查看虚拟机的 ip 我执行后是这样的
命令建议我们通过 docker-machine ls 查看,具体操作如下
虽然通过 docker-machine 没有获取到虚拟机的 ip ,我通过的方式获取到了,具体操作如下
执行ipconfig 查看Docker 虚拟主机的 ip,具体操作如下
然后通过ip 访问以SpringBoot 搭建的 Demo 项目。
需要说明的是我的机器是 win10 64位操作系统。
到这里所有操作执行完毕!接下来开始做一个简单的。
小结
将一个 SpringBoot Docker 化的具体操作步骤如下
创建SpringBoot项目
定义Dockerfile 文件来创建自定义镜像
通过自定义镜像启动容器。
查看容器中应用程序的日志以及访问运行中的程序
关于镜像、容器、Dockerfile 常用的操作命令如下
原文链接
blog.csdn/ljk126wy/article/details/104275624
nba赛程
- 哈登10分篮网战胜热火 哈登篮网比赛集锦
- nba快船vs步行者 nba快船vs步行者全场回放
- 湖人对阵鹈鹕:湖人对阵鹈鹕回放
- 中国男篮蓝队:中国男篮蓝队热身赛
- nba半兽人法里埃德 nba半兽人法里埃德身高
- 约翰沃尔百米速度 约翰沃尔生涯最高分
- 东契奇砍下40分篮网加时纪录 东契奇砍下40分篮网
- 詹姆斯年薪多少钱 詹姆斯最高年薪是多少
- 公牛vs热火东部决赛 公牛vs热火东部决赛回放
- 勇士退役35号球衣 勇士退役球衣一览表
- 快船vs灰熊季后赛 快船vs灰熊季后赛第六场
- 詹姆斯乔治湖人球衣 詹姆斯湖人球衣有几款
- 易立致歉易建联:易建联事件是怎么回事
- 广东27连胜创cba历史纪录 cba广东队的连胜纪录
- 女篮获得奥运资格 女篮获得奥运资格了吗
- 火箭vs鹈鹕全场录像回放 火箭vs鹈鹕比赛录像