docker进阶1

本文详细介绍了Docker数据卷的双向绑定,通过实例演示了Mysql的部署和数据持久化,探讨了匿名挂载与具名挂载的区别,并讲解了Docker网络的基础,包括Docker0网络、容器间链接与自定义网络的创建与连通。同时,文章还涉及了Dockerfile的使用,以及SpringBoot微服务的Docker化过程。
摘要由CSDN通过智能技术生成

容器数据卷

挂载(双向绑定)

1、下载centos镜像
docker pull centos

在这里插入图片描述

2、启动,绑定路径
# -v 宿主机的目录:容器内的目录 
docker run  -it -v /home/linux_yzw:/home/docker_yzw centos
容器内:
[root@iZx1c8ur3cbwpvZ ~]# docker run  -it -v /home/linux_yzw:/home/docker_yzw centos
[root@9e79280a94a3 /]# ls 
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@9e79280a94a3 /]# cd /home/docker_yzw
[root@9e79280a94a3 docker_yzw]# ls
[root@9e79280a94a3 docker_yzw]# 
宿主机内:
[root@iZx1c8ur3cbwpvZ /]# ls
bin   dev  home  lib64       media  opt    proc  run   srv  tmp  var
boot  etc  lib   lost+found  mnt    patch  root  sbin  sys  usr  www
[root@iZx1c8ur3cbwpvZ /]# cd /home/linux_yzw
[root@iZx1c8ur3cbwpvZ linux_yzw]# ls
[root@iZx1c8ur3cbwpvZ linux_yzw]# 
3、检验是否双向绑定了
方式1:宿主机内创建,查看容器

在宿主机内创建文件a.txt,查看docker容器内是否对应生成了文件
在这里插入图片描述
容器内生成了
在这里插入图片描述

方式2:容器内创建,查看宿主机

在容器内创建文件b.txt,查看宿主机内是否对应生成了文件
在这里插入图片描述
宿主机内生成了
在这里插入图片描述

方式3:关闭容器,宿主机内创建,启动容器查看是否有文件
关闭容器

在这里插入图片描述

宿主机内创建c.txt

在这里插入图片描述

启动容器查看是否有文件

在这里插入图片描述

结论:容器就算是关闭的,宿主机照样会把文件同步进去

Mysql部署安装

1、拉取镜像

在这里插入图片描述

2、挂载目录,运行
-d 后台运行
-p 端口映射
-v 目录挂载
-e 设置数据库登录密码(账号root)
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 mysql_01 mysql

在这里插入图片描述

3、windows用navicat连接远程docker里面的Mysql

在这里插入图片描述
在这里插入图片描述

4、新增两个数据库 demo1、demo2,对应的绑定目录相应有变化
新增前:

在这里插入图片描述在这里插入图片描述

新增后:

在这里插入图片描述

结论:docker里面的数据变动都会对应到宿主机上

具名挂载和匿名挂载(没理解,后续再说)

初步理解:
是指将容器内的目录文件持久化到宿主机上的一种方式

匿名挂载:
命令
docker run -d -name 名字 -v /docker/yzw 镜像

在这里插入图片描述

在容器内是/volume1目录

在这里插入图片描述

对应的宿主机位置:
(1)退出容器:ctrl+P+Q
(2)在宿主机执行 docker inspect 容器名或者容器id

在这里插入图片描述
在这里插入图片描述

(3)找到对应的宿主机上的映射位置/var/lib/docker/volumes/ac69fd04c47ac2dd6ac8b36d82a8520dcfc470e91c4274ac469442816b410ce0/_data
  • 这里的一长串ac69fd04c47ac2dd6ac8b36d82a8520dcfc470e91c4274ac469442816b410ce0是匿名生成的随机数字
(4)进入对应容器内的/volume1目录和宿主机的/var/lib/docker/volumes/ac69fd04c47ac2dd6ac8b36d82a8520dcfc470e91c4274ac469442816b410ce0/_data目录,检验是否双向绑定了
具名挂载:
命令
docker run -d -name 名字 -v dir_name:/docker/yzw  镜像
在容器内是/volume1目录

在这里插入图片描述

对应的宿主机位置:
(1)退出容器:ctrl+P+Q
(2)在宿主机执行 docker inspect 容器名或者容器id

在这里插入图片描述
在这里插入图片描述

(3)找到对应的宿主机上的映射位置/var/lib/docker/volumes/volume_name/_data
  • 这里的volume_name与上面的docker run -d -name tomcat_02 -v volume_name:/volume1 tomcat中的volume_name是对应的
结论:不论匿名挂载还是具名挂载,最终的宿主机对应的挂载目录都是

/var/lib/docker/volumes/xxxxxe/_data目录, 其中xx

感谢您的提问!以下是一些关于 Docker 进阶学习的建议: 1. 学习容器编排工具:Docker Compose 和 Kubernetes 是两个常用的容器编排工具。通过学习它们,您可以更好地管理和编排多个容器,构建复杂的应用架构。 2. 持续集成与持续部署(CI/CD):学习如何使用 Docker 构建持续集成和持续部署流程。这将有助于自动化应用程序的构建、测试和部署,提高开发和交付效率。 3. 多阶段构建(Multi-stage Builds):掌握多阶段构建技术可以帮助您优化 Docker 镜像的大小和性能。通过在构建过程中创建多个阶段,并且只保留最终运行所需的组件,可以减小镜像的体积。 4. Docker 插件和扩展:探索 Docker 的插件和扩展生态系统,了解如何使用它们来扩展 Docker 的功能。一些常见的扩展包括网络插件、存储插件和身份验证插件,它们可以提供额外的功能和灵活性。 5. 容器安全和隔离:学习如何配置和管理容器的安全性和隔离性。了解容器的安全最佳实践,并使用适当的配置和工具来加强容器的安全性,以防止潜在的攻击和数据泄漏。 6. Docker Swarm:Docker Swarm 是 Docker 官方提供的一个原生的容器编排和集群管理工具。通过学习 Docker Swarm,您可以了解如何使用它来管理分布式应用程序,并实现负载均衡和高可用性。 7. 监控和日志:学习如何监控和记录 Docker 容器的性能和日志。了解如何使用相关工具和技术来监测容器的资源利用率、运行状况和错误日志,以便及时发现和解决问题。 这些是 Docker 进阶学习的一些建议,希望对您有所帮助!如有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值