栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker学习05——docker镜像原理和dockerfile部署spring boot项目

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker学习05——docker镜像原理和dockerfile部署spring boot项目

docker镜像原理思考

思考:

1、docker 镜像本质是什么?

2、docker中centos镜像为什么只有200M,而一个centos操作系统的ios文件几个G。

3、docker中tomcat镜像为什么有500M,而一个tomcat安装包只有70多M。

1.操作系统组成部分


2.docker镜像原理

docker镜像是由特殊的文件系统叠加而成

最低端是bootfs,并使用宿主机的bootfs

第二层是root文件系统rootfs,称为base image

然后再往上可以叠加其他的镜像文件

3.镜像制作

1、容器转为镜像

docker commit 容器id 镜像名称:版本号

压缩成压缩文件

docker save -o 压缩文件名称 镜像名称:版本号

还原

docker load -i 压缩文件名称

目录挂载的不生效

4.dockerfile

dockerfile 是一个文本文件

包含了一条条指令

每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像

包含了Dockerfile 关键字,都是大写的。

5案例 案例1需求自定义centos7镜像。要求:

1、默认登录路径为/usr;

2、可以使用vim命令

实现步骤

(1)定义一个父镜像:FROM centos:7

(2)定义作者信息 MAINTAINER tc s

(3)执行安装vim命令:run yum install -y vim

(4)设置默认工作路径:WORKDIR /usr

(5)定义容器启动执行的命令:CMD /bin/bash

(6)通过dockfile构建镜像:docker bulid -f dockerfile文件路径 -t 镜像名称:版本

实际步骤

mkdir docker-files

vim centos-dockerfile

写入:

FROM centos:7
MAINTAINER tc s
run yum install -y vim
WORKDIR /usr
CMD /bin/bash

WQ保存退出。

docker build -f ./centos_dockerfile -t tc_centos:1

-t :指定镜像名字和版本

docker run -it --name=c2 tc_centos:1 .

案例2:需求定义一个dockerfile,部署spring boot项目

实现步骤:

(1)定义一个父镜像:FROM java:8

(2)定义作者信息 MAINTAINER tc s

(3) 将jar包添加到容器:ADD sprintboot.jar app.jar

(4) 定义容器启动执行的命令:CMD java -jar app.jar

(5)通过dockfile构建镜像:docker bulid -f dockerfile文件路径 -t 镜像名称:版本

准备工作

localhot:8080/hello

打包sprintboot 项目,会生成一个架包。

放入到linux服务器。

cd ~ 到目录看到架包

实际步骤

mv hello.jar ./docker-files

cd docke-flies

vim sprintboot_dockerfile

写入:

FROM java:8
MAINTAINER tc s
ADD hello.jar app.jar
CMD java -jar app.jar

wq

docker bulid -f ./sprintboot_dockerfile -t app .

默认为最新版本

docker run -id app

端口映射

docker run -id -p 9000:8080 app

docker ps -a查看一下

访问测试

宿主机ip:9000/hello

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号