Docker(springcloud笔记第三期)
p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解
目录
- 镜像与容器
- 一些命令与镜像命名规范
- 数据卷
- 自定义镜像
- Dockerfile
镜像与容器
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image),镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创造一个隔离环境,称为容器(container)
镜像仓库:存储和管理镜像的平台,Docker Hub
一些命令与镜像命名规范
docker run:创建并运行一个容器
docker stop:停止容器进程
docker start:启动容器进程
-d:让容器在后台运行
–name mysql:给容器起个名字,必须唯一
-p 3306:3306:设置端口映射(宿主机端口映射到容器内端口)
-e KEY=VALUE:设置环境变量
mysql:指定运行的镜像的名字
docker pull:将远端镜像拉取到本地
docker push:将本地镜像推送到远端
docker images:查看本地所有镜像
docker rmi:删除本地镜像
docker build:构建镜像
docker save:将镜像保存为压缩文件
docker load:将镜像加载到本地
docker ps:查看当前容器的运行状态
docker rm:删除本地容器
docker logs:查看容器运行日志
docker exec:进入容器内部
镜像名称一般分两部分组成:[repository]:[tag]。
● 其中repository就是镜像名
● tag是镜像的版本
在没有指定tag时,默认是latest,代表最新版本的镜
数据卷
**数据卷(volume)**是一个虚拟目录,是容器内目录和宿主机目录之间映射的桥梁
命令 说明
docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷
docker volume inspect 查看某个数据卷的详情
docker volume prune 清除数据卷
自定义镜像
镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是将上述文件打包的过程
部署一个java应用的步骤
准备一个Linux容器
安装JRE并配置环境变量
拷贝jar包
运行jar包
。。。。。。。。。。。。。。
构建有一个java镜像的步骤
准备一个Linux运行环境
安装JRE并配置环境变量
拷贝jar包
编写运行脚本
docker会把构建镜像的每一步产生的文件分别打成压缩包,作为镜像的一部分,而不是将每一步产生的文件全部整成一个包作为镜像
而这每一步产生的压缩包称为层(Layer)。进行添加安装包、依赖、配置等每步操作时,每次操作都会产生一个新的层
优点:当你制作好了一个基础镜像后,以后制作镜像可以使用该镜像作为基础,简化了镜像的构建
并且在下载镜像时,如果docker检测到该镜像的前几层在本地有的话就不会重复下载了,节省了空间,提升了下载速度
基础镜像(BaseImage):即应用依赖的系统函数库、环境、配置、文件等
入口(EntryPoint):镜像运行入口,一般指程序启动的脚本和参数这层
Dockerfile
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:
总结
镜像包含了应用程序所需要的运行环境、函数库、配置、以及应用本身等各种文件,这些文件分层打包而成
Dockerfile就是利用固定的指令来描述镜像的结构和构建过程,这样Docker才可以依次来构建镜像