前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门Docker(4)——commit镜像|容器数据卷

快速入门Docker(4)——commit镜像|容器数据卷

作者头像
大数据老哥
发布2021-02-04 15:07:38
9280
发布2021-02-04 15:07:38
举报

上篇文章给家讲解了实战练习附带了给大家又聊了下境像讲解的原理,本篇文章主要给家聊一聊关于commit的和容器数据卷相关内容附带一些练习,编写不易:对你有帮助【一键三连,收藏】。看完掌握以下内容:

  • commit 镜像 原理
  • 了解什么是容器数据卷
  • 如何使用数据卷
  • 附带 MySQL 安装实战
  • 了解具名和匿名挂载

一、commit 镜像

代码语言:javascript
复制
docker  commit  提交容器成为一个新的副本
# 命令和git 原理类似

docker  commit -m="提交的描述信息" -a="作者" 容器Id 目标镜像名:[TAG]

1.1 实战测试

代码语言:javascript
复制
#启动一个默认的tomcat
[root@192 ~]# docker run -it -p 8080:8080 tomcat
[root@192 ~]# docker exec  -it 3992bb6e4b6c /bin/bash
root@e0ecc9f999de:/usr/local/tomcat#
#发现默认的tomcat是 没有webapps应用的,镜像的原因,阿里云官方镜像默认webapp下是没有文件的!
root@e0ecc9f999de:/usr/local/tomcat# ls webapps

#我自己拷贝进去了基本的文件
root@e0ecc9f999de:/usr/local/tomcat# cp -r webapps.dist/* webapps
# 将我们操作过的容器通过commit提交成一个镜像,我们以后就是使用我们修改过的镜像即

#添加
[root@192 ~]# docker commit -m="添加了webapps中的内容" -a="大数据老哥" 3992bb6e4b6c tomcat02:1.0
sha256:cb56b9aff6aa3a19095f72581d8c7d198a05936e5579946989b31a7a65378d9c

二、容器数据卷

2.1 什么是容器数据卷

数据?如果数据都子容器 中,那么我们删除容器,数据就会删除 需求:数据而可以持久化

MySQL,容器删除了数据 就丢失了 需求:MySQL数据可以存储在本地!

容器之间可以有一个数据共享技术!Docker 容器总产生的数据,同步到本地

这就是卷技术!目录的挂在,将我们的目录,挂再到Linux上面!

总结: 容器的持久化和同步操作,容器间也是可以数据共享的!

2.2使用数据卷

“方式一:直接使用命令进行挂载 ”

代码语言:javascript
复制
docker run -it v 主机目录:容器目录

#测试
[root@192 home]# docker run -it -v /home/test:/home centos /bin/bash
#启动起来时我们可以通过 docker inspect 容器id 进行查看

docker inspect 容器id

2.3 MySQL 安装实战

思考 :MySQL的数据持久问题!

代码语言:javascript
复制
[root@192 test]# docker pull mysql:5.7

#运行容器,需要做数据挂载! 安装启动MySQL需要设置密码(注意)
#官方测试:docker   run -name some-mysql --e MYSQL_ROOT_PASSWORD=my-secret-ps -d mysql;tag
#启动我们自己的
[root@192 test]# docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7
7b0c338500ada36d84578af1e554c6952344c91936b9e00bcaf9cdb0aea78c34

#创建成功后使用我们的连接工具进行测试

假设我们将容器删掉

发现,我们挂载到本地的数据卷依旧没有丢失,这就是现实了容器数据持久化的感功能

2.4 具名和匿名挂载

代码语言:javascript
复制
#匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx  nginx
# 查看所有volume 的情况
[root@192 data]# docker volume  ls
DRIVER              VOLUME NAME
local               1ecd32f7af966023eb385226ec505556f03940ff92c57d030e94c155bb656322
local               6c9d1409db46489bb5310882a7d82d74c402750e781fb1895c35575a746f4f72

#这里发现 ,这种匿名挂载,我们在-v只写了容器内的路径,没有写容器外的路径!

#具名挂载
[root@192 data]# docker run -d -P --name nginx02 -v juming_nginx:/etc/nginx  nginx
bd6c725b4a822d404ad5021dc4b446b0f742520854644d82c841f37e58e92503
[root@192 data]# docker volume  ls
DRIVER              VOLUME NAME
local               1ecd32f7af966023eb385226ec505556f03940ff92c57d030e94c155bb656322
local               6c9d1409db46489bb5310882a7d82d74c402750e781fb1895c35575a746f4f72
local               juming_nginx
#通过 -v 卷名:容器内路径
#查看一下这个卷
[root@192 data]# docker volume inspect juming_nginx

所有的docker 容器内的卷,没有指定目录情况下都在/var/lib/docker/volumes/xxx/_date我们通过具名挂载可以方便的找到我们的一个卷,大数情况下都是用具名挂载

代码语言:javascript
复制
#如何确定是具名挂载 还是匿名挂载,还是指定路径挂载!
-v 容器内路径         #匿名挂载
-v 卷名:容器内路径    #具名挂载
-v 本地路径:容器内路径 # 指定路径挂载
2.4.1 扩展
代码语言:javascript
复制
#通过-v容器内路径:ro rw 改变读写权限
ro  readonly    只读
rw  readwrite   可读可写

#一旦这个设置容器权限,容器对我们挂载出来的内容就限定了
[root@192 data]# docker run -d -P --name nginx02 -v juming_nginx:/etc/nginx:ro  nginx
[root@192 data]# docker run -d -P --name nginx02 -v juming_nginx:/etc/nginx:rw  nginx

# ro 只要看到ro 就说名明这个路径只能通过宿主机来操作,容器内无法进行操作

三、 粉丝福利

以下内容是博主花费了1个星期的时间总结各大厂商的面试题与拜访大佬总结的内容那个 关注公证号【大数据老哥】回复:Docker基础面试题即可获取。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据老哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、commit 镜像
    • 1.1 实战测试
    • 二、容器数据卷
      • 2.1 什么是容器数据卷
        • 2.2使用数据卷
          • 2.3 MySQL 安装实战
            • 2.4 具名和匿名挂载
              • 2.4.1 扩展
          • 三、 粉丝福利
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档