🖥️关于docker
📋我们可能经常听到,也经常用到,网络上也有各种各样的热门项目的“一键”部署教程,之前玩云服务器的时候全靠一键教程来玩docker了,但是随着接触的更深一些,发现稍微深入一点了解docker,对所有docker项目来说,都是一通百通,所谓求人不如求己,了解docker的基础原理,在日后的项目部署过程中才会得心应手,不必处处求人。
  当然,我的水平相!当!有!限!故此系列教程仅针对0基础小白,帮助小伙伴们更快上手,讲的都是最基础的东西,如果错误,烦请各位大佬指出!

🧭什么是Docker?


📋比喻:乐高积木
  想象一下你在玩乐高积木,每个积木块都有特定的功能,并且可以组合在一起创建出复杂的结构。Docker就像是一套用于构建应用的乐高积木,它允许开发者将应用程序及其依赖打包成一个个标准化的“积木块”,也就是“容器”。

🏕️Docker的基本概念
  • ✨️镜像(Image):就像乐高的说明书,定义了如何组装一个积木块。Docker镜像是创建容器的基础模板,包含了运行应用程序所需的所有文件和配置。
  • ✨️容器(Container):实际运行的应用程序实例。就像是你按照说明书组装好的乐高模型,可以根据需要启动、停止或删除。
  • 🪄容器与主机的关系:
  隔离性:容器有自己的文件系统、网络空间等,与宿主机隔离,保证了应用的一致性和可移植性。
  轻量级:容器共享宿主机的操作系统内核,不需要额外的虚拟化层,因此启动速度快,资源消耗少。
  • ✨️端口映射

📋比喻:门牌号
   当你在容器里运行了一个Web服务器(比如Nginx),默认情况下这个服务只能在容器内部访问。如果想让外部可以直接访问这个服务,就需要告诉Docker如何把容器内的端口映射到宿主机上。这就像告诉快递员如何找到你的地址一样。
  1. docker run -p 8080:80 nginx
复制代码

  这里 -p 后面跟着两个端口号,前者是宿主机上的端口,后者是容器中的端口。这样当外部设备尝试连接宿主机的8080端口时,流量会被转发到容器内的80端口。
  • ✨️路径映射

📋比喻:行李箱
有时候你需要在容器中保存数据或者读取宿主机上的文件,这时就需要使用路径映射。可以把容器内的某个目录与宿主机的一个目录关联起来,就像把你的行李箱里的东西拿出来放在酒店的柜子里一样。
  1. docker run -v /vol1/1000/test:/config
复制代码

这里 -v 用来指定路径映射,前面的路径是宿主机上的,后面的路径是容器内的。
    重点解释一下路径映射,这是非常容易搞错的概念!!拿上面的映射举例子,左边是宿主机真实路径,也就是你在飞牛系统内可以复制的那个路径,而右边是容器内部路径,容器可以看做是一个飞牛里面的小飞牛系统,/config代表了根目录下的config文件夹,而小飞牛看到了这个config文件夹在真实飞牛系统中的真实路径就是左边的/vol1/1000/test文件夹,这个例子建议新同学反复观看,深刻理解,后续会少踩很多坑。


✨️Docker Compose
  Docker Compose 是一个工具,它允许你在一个 YAML 文件中定义和配置一个应用(可以有多个服务,这里不多说)。这个文件叫做 docker-compose.yml,它描述了你的应用的服务、网络、卷以及其他基础设施。

🎯为什么使用 Docker Compose?
  • 一致性:Compose 确保了从开发到测试再到生产的环境一致性,因为所有的服务配置都在同一个文件中定义,你可以很方便的修改。
  • 易于部署:使用 Compose 文件,可以方便地将应用部署到不同的环境中,只需一个命令即可启动。
🎮️Docker Compose 文件的基本结构
一个简单的 docker版transmission的docker-compose.yml 文件看起来像这样:
  1. version: "3"
  2. services:
  3. transmission:
  4. image: linuxserver/transmission:4.0.5 #tr4.0官方镜像地址
  5. container_name: transmission #设置自定义的项目名称
  6. environment:
  7. - PUID=1000
  8. - PGID=1001
  9. - TZ=Asia/Shanghai
  10. - USER=admin   #设置用户名
  11. - PASS=password   #设置密码
  12. - TRANSMISSION_WEB_HOME=/config/webui/trguing-zh #汉化web的映射路径
  13. volumes:
  14. - /vol1/@appshare/tr/config:/config #tr配置文件映射路径
  15. - /vol1/@appshare/tr/watch:/watch #tr监控种子文件映射路径
  16. - /vol1/1000/SSDPT/SSDPT:/vol1/1000/SSDPT/SSDPT #自定义的下载路径1
  17. - /vol2/1000/HDDPT/HDDPT:/vol2/1000/HDDPT/HDDPT #自定义的下载路径2
  18. - /vol2/1000/9KGPT/9KGPT:/vol2/1000/9KGPT/9KGPT #自定义的下载路径3
  19. ports:
  20. - 9091:9091
  21. - 51416:51416
  22. - 51416:51416/udp
  23. network_mode: host #设置网络模式,为保证种子链接顺畅,建议使用host网络模式
  24. restart: unless-stopped #设置重启模式
复制代码

🎰解释文件中的关键部分
  • version:指定了使用的 Compose 文件格式的版本。
  • services:定义了应用中包含的服务。
  • web:代表 Web 应用服务。
  • image:指定使用的 Docker 镜像。
  • ports:配置端口映射,使外部可以通过宿主机的端口访问容器内的服务。
  • volumes:配置路径映射,使得宿主机的文件可以被容器内的应用访问。
  • image:指定使用的数据库镜像。
  • environment:设置环境变量,如账号密码等。

🀄️使用 Docker Compose 的命令
  • 后台运行应用:

  1. docker-compose up -d
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明:
1、本站提供的资源不拥有任何权利,其版权归原著拥有。
2、保证站内提供的所有可下载资源(软件等等)都是按“原样”提供,本站未做过任何大规则的修改;本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。
3、时光源码平台服务中的任何信息或材料的删除、存储失败、错误提供或未及时提供不承担任何责任。
4、时光源码平台其许可方不对通过时光源码网主题服务得到的或在其上刊登广告所推介的产品或服务、通过由时光源码平台服务提供的任何链接而得到的产品或服务,以及通过在时光源码网平台服务中所提供的任何链接而得到的任何信息或建议做任何担保,对因通过服务下载或访问网上的任何信息或材料而导致的任何伤害不承担任何责任。
5、时光源码平台服务包含的下载资源信息内的所有内容并不反映亦不代表任何时光源码平台之意见。
6、时光源码平台服务包含的下载资源信息内的所有内容并不反映亦不代表任何时光源码平台之意见。时光源码平台作为模板共享网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力,但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,时光源码网平台负有移除盗版和非法转载作品以及停止继续传播的义务。
7、时光源码平台对他人在网站上实施的此类侵权行为不承担法律责任,侵权的法律责任概由会员本人承担,向时光源码发布作品的作者视为同意时光源码就前款情况采取的相应措施。
8、时光源码平台在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
9、本网站所有源码、模板、视频、软件和资料均为软件作者提供和站长从互联网收集整理而来,仅供学习和研究使用,请勿用于其他用途。如果版权拥有者发现自己作品被侵权,请及时向时光源码提出权利通知,将身份证明、权属证明、具体链接(URL)及详细侵权情况证明发往(邮箱:70050550@qq.com)指出,时光源码平台在收到上述法律文件后,在7个工作日内移除相关涉嫌侵权的内容。
梦想这东西和经典一样,永远不会因为时间而褪色,反而更显珍贵。
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系作者