收起左侧

【新生指南-001】绕不开的docker

97
回复
25819
查看
    [ 复制链接 ]

6

主题

127

回帖

150

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-10-13 00:51:38 显示全部楼层 阅读模式
本帖最后由 madrays 于 2024-10-13 10:59 编辑
📢前言



  📟️接触Nas时间不长,感谢飞牛的出现带我走进了一个新的领域,对于我一个学土木干环保的人来说,这个世界太精彩了,相信有很多小伙伴们像我一样刚刚接触这个东西,看着大佬们这样那样的应用眼馋不已,确实这个东西对于我们门外汉来说还是有一些门槛的,接下来的日子里希望通过我不断踩坑的经历,为新来的小伙伴们指引一条“捷径”,目的是更快的上手飞牛,感受飞牛的魅力,说到这里,回到我的主题,关于docker,这是一个“玩”飞牛绕不开的东西。


🖥️关于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
    复制代码



  🛸本期就讲到这里吧,后续我将持续分享我喜欢的各种docker项目。   
  🫧对于新同学来说,docker就是一个很方便我们新手的项目部署工具,大佬们的项目大多都可以通过这种方式部署到我们的本地飞牛上,希望大家能了解一些基础的docker知识,不要嫌麻烦,磨刀不误砍柴工,项目部署一次次失败的感觉是很难受的哈哈😆😆😆


收藏
送赞 72
分享

0

主题

29

回帖

0

牛值

江湖小虾

2024-10-14 15:22:17 显示全部楼层

回帖奖励 +1 飞牛币

Docker Compose是真的好用

6

主题

127

回帖

150

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-10-14 11:30:23 楼主 显示全部楼层
强烈建议新牛牛看看这篇哈

0

主题

16

回帖

0

牛值

江湖小虾

2024-10-14 13:20:54 显示全部楼层

回帖奖励 +1 飞牛币

不懂的人看了才有用

6

主题

34

回帖

5

牛值

fnOS系统内测组

社区上线纪念勋章

2024-10-14 15:53:34 显示全部楼层

回帖奖励 +1 飞牛币

很详细的教程
[url=https://club.fnnas.com/static/image/smiley/grapeman/15.gif]https://club.fnnas.com/static/image/

3

主题

11

回帖

5

牛值

fnOS系统内测组

社区上线纪念勋章

2024-10-14 15:59:00 显示全部楼层

回帖奖励 +1 飞牛币

强烈建议新牛牛看看这篇哈

1

主题

5

回帖

0

牛值

fnOS系统内测组

社区上线纪念勋章

2024-10-14 16:00:01 显示全部楼层

回帖奖励 +1 飞牛币

看了确实有用

1

主题

8

回帖

0

牛值

江湖小虾

2024-10-14 16:01:59 显示全部楼层

回帖奖励 +1 飞牛币


谢谢分享教程!

4

主题

23

回帖

0

牛值

江湖小虾

2024-10-14 16:56:05 显示全部楼层

回帖奖励 +1 飞牛币

感谢分享,排版看着很舒服

5

主题

9

回帖

0

牛值

江湖小虾

2024-10-14 17:48:54 显示全部楼层

回帖奖励 +1 飞牛币

飞牛的docker确实简化了不少,合适新手用

27

主题

45

回帖

0

牛值

fnOS系统内测组

2024-10-14 17:57:49 显示全部楼层

回帖奖励 +1 飞牛币

好一个9KGPT哈哈哈哈

0

主题

3

回帖

0

牛值

江湖小虾

2024-10-14 20:21:03 显示全部楼层

回帖奖励 +1 飞牛币

谢谢分享教程!

0

主题

11

回帖

0

牛值

江湖小虾

2024-10-14 20:46:55 显示全部楼层
不懂的人看了才有用

1

主题

38

回帖

0

牛值

fnOS系统内测组

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

2024-10-15 11:24:39 显示全部楼层
谢谢你的分享

2

主题

7

回帖

0

牛值

江湖小虾

2024-10-15 11:51:51 显示全部楼层
浅显易懂,大大点赞

0

主题

6

回帖

0

牛值

江湖小虾

2024-10-15 21:46:47 显示全部楼层
看了确实有用

2

主题

54

回帖

0

牛值

初出茅庐

2024-10-16 08:30:08 显示全部楼层
看介绍感觉docker就是虚拟机PVE

4

主题

21

回帖

0

牛值

江湖小虾

2024-10-16 21:53:28 显示全部楼层
我屮艸芔茻,我也土木的,现在三局,喜欢计算机

3

主题

9

回帖

0

牛值

江湖小虾

2024-10-17 16:10:03 显示全部楼层
慢慢了解中

7

主题

47

回帖

0

牛值

初出茅庐

2024-10-18 10:59:24 显示全部楼层
希望增加虚拟机支持

1

主题

25

回帖

130

牛值

社区共建团

社区共建团荣誉勋章

2024-10-18 16:06:57 显示全部楼层
肥牛的刀壳儿确实好用。

0

主题

69

回帖

0

牛值

初出茅庐

2024-10-18 17:16:18 显示全部楼层
新手来学习,写得很规范详细!!

1

主题

11

回帖

0

牛值

江湖小虾

2024-10-19 22:53:42 显示全部楼层
强烈建议新牛牛看看这篇哈,我是新牛我爱看

3

主题

95

回帖

0

牛值

初出茅庐

2024-10-21 08:04:57 显示全部楼层
现在的NAS原生插件都不多,都是通过docker实现各种功能,所以NAS系统之间很容易被替代。

1

主题

8

回帖

0

牛值

江湖小虾

2024-10-21 16:31:17 显示全部楼层
感谢分享,虽然还是有些懵,但收藏了,一边尝试,一边理解。

1

主题

9

回帖

0

牛值

fnOS系统内测组

2024-10-24 16:15:10 显示全部楼层
飞牛的docker确实简化了不少

0

主题

2

回帖

0

牛值

江湖小虾

2024-10-24 20:29:57 显示全部楼层
先收藏,避免找不到啊

1

主题

5

回帖

0

牛值

江湖小虾

2024-10-24 22:05:38 显示全部楼层
请问怎样调用usb接口呀,通过docker部署cups,做共享打印,结果一直读不到usb端口
只是盲区~~  详情 回复
2024-10-25 01:00

6

主题

127

回帖

150

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-10-25 01:00:39 楼主 显示全部楼层
只是盲区~~

2

主题

16

回帖

0

牛值

社区共建团

社区上线纪念勋章

2024-10-25 13:01:30 显示全部楼层
学习了,写的很好  对于新手小白来说的理论入门

1

主题

1

回帖

0

牛值

江湖小虾

2024-10-29 10:26:29 显示全部楼层
写的真好

0

主题

2

回帖

0

牛值

江湖小虾

2024-11-4 11:10:27 显示全部楼层
多学点计算机也是好事,毕竟学土木的都懂

0

主题

1

回帖

0

牛值

江湖小虾

2024-11-4 22:57:13 显示全部楼层
谢谢大佬的讲解

6

主题

26

回帖

0

牛值

江湖小虾

2024-11-5 11:31:33 显示全部楼层
太难了,如果有类似 苹果“捷径”那样子,一键部署,省去代码的烦恼,那该多好啊

1

主题

7

回帖

0

牛值

江湖小虾

2024-11-5 16:07:46 显示全部楼层
感觉新手小白可能不太好理解,你是专业的程序猿吧

0

主题

11

回帖

0

牛值

江湖小虾

2024-11-5 20:22:08 显示全部楼层
谢谢分享教程!

0

主题

2

回帖

0

牛值

江湖小虾

2024-11-6 09:26:46 显示全部楼层
讲的浅显易懂谢谢!

3

主题

3

回帖

0

牛值

江湖小虾

2024-11-6 10:24:43 显示全部楼层
挺方便的

0

主题

12

回帖

0

牛值

江湖小虾

2024-11-11 02:52:09 显示全部楼层
真正保姆级详细的教程,多看几遍就通透

0

主题

1

回帖

0

牛值

江湖小虾

2024-11-11 15:49:16 显示全部楼层
新手学习一下,介绍得很详细.确实有用

4

主题

118

回帖

60

牛值

fnOS系统内测组

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

2024-11-13 10:52:28 显示全部楼层
对新手很友好!赞
✨( ̄︶ ̄)↗ ✨✨

1

主题

9

回帖

0

牛值

江湖小虾

2024-11-16 11:38:16 显示全部楼层
已收藏,有时间细看,希望也推荐一些小白适用的docker项目!

0

主题

3

回帖

0

牛值

江湖小虾

2024-11-18 13:41:10 显示全部楼层
感谢分享

0

主题

2

回帖

0

牛值

江湖小虾

2024-11-18 15:59:30 显示全部楼层
66666666666666666

0

主题

3

回帖

0

牛值

江湖小虾

2024-11-18 16:37:52 显示全部楼层
很受用!!!

1

主题

8

回帖

0

牛值

江湖小虾

2024-11-19 13:29:44 显示全部楼层
那么问题来了,docker与主机共享内核,是否docker容器中的所有镜像都需要映射路径到主机下的物理路径上,比如通过nginx  部署了一套web网站,web网站下的程序文件目录 和用户上传文件目录 都需要映射到主机物理路径下?还有 涉推荐一个便宜的性能好的小主机 我要学学
一般来说web网站上传目录这些会结合数据库来做,如果没有的话,存储在容器内部,重启后会丢失,所以需要映射到本地来长久保存  详情 回复
2024-11-19 15:14

6

主题

127

回帖

150

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-11-19 15:14:17 楼主 显示全部楼层
一般来说web网站上传目录这些会结合数据库来做,如果没有的话,存储在容器内部,重启后会丢失,所以需要映射到本地来长久保存
thank you hahahaha  详情 回复
2024-11-19 17:38

1

主题

8

回帖

0

牛值

江湖小虾

2024-11-19 17:38:56 显示全部楼层
madrays 发表于 2024-11-19 15:14
一般来说web网站上传目录这些会结合数据库来做,如果没有的话,存储在容器内部,重启后会丢失,所以需要映 ...

thank you hahahaha

6

主题

3

回帖

0

牛值

江湖小虾

2024-11-21 11:48:16 显示全部楼层
知道那个好   不过小白完全不知道里面又啥功能   

1

主题

4

回帖

0

牛值

江湖小虾

2024-11-22 17:10:46 显示全部楼层
刚入手,持续学习中!
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则