一. docker装tomcat
# 官方使用
docker run -it --rm tomcat:9.0
# 我们之前启动都是后台,停止了容器之后,容器还可以查到 docker run -it --rm,一般用来测试,用完就删除
# 下载再启动
docker pull tomcat
# 启动运行
docker run -d -p 3355:8080 --name tomcat02 tomcat
# 测试访问没有问题
# 进入容器
docker exex -it tomcat02 /bin/bash
二. 部署ES+Kibana
# es暴露的端口很多
# es十分耗内存
# es的数据一般放在安全目录! 挂在载
# --net somenetwork 网络配置
# 查看CPU状态 docker stats
# 启动测试完赶紧关闭,增加内存限制,修改配置问价 -e 环境配置修改
# 镜像原理之联合文件系统
一层一层的叠加
docker镜像实际上由一层一层的文件系统构成的,这种层级的文件系统UnionFS
bootFS 黑屏 -加载 -开启
rootFS linux不同的发行版本
# 分层的理解
docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部
这一层通常是我们说的容器层,容器之下的都叫镜像层
# 如何提交一个容器的镜像
commit 镜像
docker commit 提交容器成为一个新的副本
# 命令和git版本类似
docker commit -m="提交的描述信息" -a "作者" 容器id 目标镜像名:【TAG】
# 实战测试
1. 启动一个默认的tomcat
2. 发现这个默认的tomcat 是没有webapps应用,镜像的原因,官方的镜像默认webapps下是没有文件的!
3. 我自己拷贝进去了基本的文件
4. 将我们操作过的容器通过commit提交为一个镜像!我们以后就是用我们修改过后的镜像即可,z
如果你想要保存当前容器状态,就可以通过commit来提交,获得一个镜像,就好比以前学习VM时候,快照!
到了这里才是入门**************************************************************************************************************
三. 容器数据卷
# 什么是容器数据卷
数据丢失!需求:数据可以持久化
容器删除了,删库跑路!需求:MySQL数据可以存储在本地
容器之间有一个共享的技术! Docker容器中产生的数据同步到本地
这就是卷技术!目录挂载,容器的目录挂载到linx虚拟机上
总结为一句话:容器的持久化和同步操作!容器间也可以进行数据共享
# 使用数据卷
方式一:直接用命令进行挂载 -v
docker run -it -v 主机目录:容器内目录
# 启动起来我们可以通过docker inspect 容器id
# 测试数据同步
再来测试!
1. 停止容器
2. 宿主机上修改文件
3. 启动容器
4. 容器内数据依旧是同步的
好处:我们以后只需要在本地修改即可,容器内会自动同步
# 具名挂载和匿名挂载
匿名:
docker run -d -P --name nginx01 -v /etc/nginx nginx
docker volume ls 查看所有的卷的情况
具名:
# 通过 -v 卷名:容器内路径
# 查看一下这个卷
docker volume inspect juming-nginx
***建议***
使用具名挂载
# 初识DockerFile
手动创建镜像,通过命令脚本
镜像是一层一层的,命令式一行一行的
# 构建镜像
docker build -f dockerfile1 -t kuangshen/centos:1.0 .
# 文件中指令(大写 )参数
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "*****end*****"
CMD /bin/bash
# 数据卷容器
多个mysql同步数据!
结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止
四. DockerFile
dockerfile 是面向开发的,以后发布项目作镜像,就需要写dockerfile文件,文件十分简单,Docker镜像逐渐成为企业交付的标准,必须掌握
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:通过DockerFile文件构建生成镜像,最终发布和运行的产品
Docker容器:容器就是镜像运行起来提供服务器
# DockerFile指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像谁写的,姓名+邮箱
RUN # 镜像构建是需要运行的命令
ADD # 步骤,tomcat镜像,这个tomcat压缩包! 添加内容
WORKDIR # 镜像工作目录
VOLUME # 挂载的目录
EXPOSE # 暴露端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承的 DockerFile,这个时候就会运行ONBUILD的指令,触发指令
COPY # 类似ADD,将我们的文件拷贝到镜像中
ENV # 构建的时候配置环境变量
实战测试
Docker Hub中99%镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件的配置来进行构建
# 创建一个自己的centos