轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件
所有的应用,直接打包docker镜像,就可以跑起来。
获取镜像:
UnionFS:封层、轻量级并且高性能的文件系统。支持对文件系统的修改和提交来一层层叠加
Docker的镜像其实就是一层一层的文件系统组成
对一些精简的OS,rootfs可以很小。只需要基本的命令。工具和程序库。底层直接用Host的kernel
如果有之前已有的文件层,不会重复下载,而是进行复用。类似叠加的操作
1.启动一个默认的tomcat 2.将一些文件拷贝进去 3.将容器作为一个新的镜像进行commit 4.想要保存当前的容器状态,就可以通过commit来提交,获得一个镜像
docker的理念:将应用和环境打包成一个镜像!
如果剧都在容器中,那么容器删除,数据就会丢失 —> 需求,数据可以持久化
容器之间可以由一个数据共享的技术!Docker容器中产生的数据,同步到本地
将容器内的目录,挂载到linux上面。
总结:容器的持久化和同步操作!容器间可以实现数据共享!
方式一:使用命令挂载 -v
docker run -it -v 主机目录:容器内目录 # 挂载本地与容器 docker run -it -v /home/test:/home centos /bin/bash #启动后用docker inspect进行测试
运行结果:
同理,宿主主机上的文件修改也会在容器中同步。
以后修改只需要在本地修改即可:容器内会自动同步
注意需要配置一个初识密码密码
#设置初识密码 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 # -d 后台运行 # -p 端口映射 # -v 数据卷挂载 # -e 设置mysql的初识密码 # --name 设置运行时的进程名
删除容器后,挂载到本地的数据卷依旧会被保留 — 实现了数据的持久化
# 匿名挂载:没有起名字 -- 仅指明了容器内的数据目录 -- etc/var # -P 随机端口映射 docker run -d -P --name nginx-1 -v etc/var nginx # 具名挂载,通过 -v 加上容器内路径 -- 建议使用
大部分时候都是用具名挂载
-v 容器内路径 #匿名挂载 -v 卷名:容器内路径 # 具名挂载 -v /宿主机路径::容器内路径 #指定路径挂载
拓展
# 通过 -v 容器内路径:ro rw 改变读写权限 ro -- 只读 rw -- 可读可写 # 一旦设置了容器权限,容器对我们挂载的内容就有限定了 # ro 只能通过宿主主机来操作
DockerFile是用来构建docker镜像的构建文件!命令脚本
通过脚本生成镜像,镜像是一层层的,脚本的一个个命令,都是一层
docker build -f dockerfile1 -t dennis/centos:1.0 . #其中dockerfile1的内容如下。指令都是大写的 FROM centos VOLUME ["volume1","volume2"] CMD echo "-----end---" CMD /bin/bash #这里的每个命令就是镜像的一层
这个卷和外部一定有一个同步的目录! — 匿名挂载
这是一个匿名挂载卷
多个mysql共享数据!
利用一个容器实现多个容器之间的数据共享
#在创建容器的时候使用命令 --volumes-from [容器1] 新创建的容器会与容器1的数据进行同步。 --- 这里的容器1就是数据卷容器
# 实验,删除了最开始链接的dennis1之后,dennis2与dennis3之间还是可以保持数据共享
这是一种备份的机制
多个mysql数据共享
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 docker run -d -p 3311:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7 #这个时候,可以实现两个容器的数据同步
结论:
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算