<br />
<br />
<iframe src="https://player.bilibili.com/player.html?isOutside=true&aid=114150734824912&bvid=BV1npQxYyEho&cid=28834270035&p=1&autoplay=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
最近发现有好多小伙伴在部署docker的时候,遇到了各种各样的困难,虽然有人出过了docker科普方面的教程,但是我还是想从我的角度以及最近在直播中和回答QQ群和微信群小伙伴的问题中获得的灵感来给大家做一个飞牛docker的使用教程。
一、什么是 Docker?
Docker 是一种容器化技术,允许开发者将应用及其依赖打包成轻量级容器,实现跨平台快速部署。飞牛私有云(FNOS),原生支持 Docker 技术,用户可通过 FNOS 轻松管理容器化应用,实现高效资源利用与隔离。说的简单一点,就是理论上所有的linux应用程序都可以打包成docker容器来运行,从而实现用户不用部署专用的运行环境以及简单的部署就能够运行。
二、我们来认识一下飞牛Docker。
1.概览页

首先我们认识一下概览页,概览页主要是Dokcer容器运行是的状态监控,还有Docker的存储位置设置,以及Docker服务的开启和关闭。图中红色框中就是存储位置,点击后面的铅笔图标,可以更换存储位置(注意:如果你已经部署了容器,那么更改了存储位置已存在的容器镜像和容器不会被迁移到目标位置,所以会是一个没有容器运行的状态。)
2.容器页

容器页主要显示所有已建立容器的状态数据,可以通过点击容器标签进入容器详情页。

图中序号的按钮功能:1.容器运行与关闭按钮 2.容器重启按钮 3.容器终端按钮 4.容器运行日志按钮
关于容器终端需要一些命令,由于是科普的教程就不详细介绍了,大家了解就好。
我们主要介绍一下容器设置标签里的功能与设置。


基本设置主要设置容器使用的资源限制,最下面的是开机自启开关。由于容器正在运行所以这里是灰色不可选的状态,如果想要修改要先停止容器运行。

端口设置主要设置的是容器端口的映射,这里我们讲的是bridge网络状态(也就是桥接,容器和宿主机通过网桥连接)下的设置,因为host状态下不需要做端口映射,具体的我们会在网络页里讲到。
前面的端口是宿主机端口,就是容器内部端口映射到宿主机上所用到的端口,这个端口可以随便改动只要不跟宿主机上其他的应用端口冲突(冲突)就可以。
后面的是容器内部端口,一般这个不需要改,如果你修改了可能造成容器不能访问,这里也是很多小伙伴做端口映射或者修改的时候经常遇到的问题,比如有的小伙伴习惯性的把前后端口改成一样的,这就导致了容器内部端口无法访问。这里我们谨记一点就可以了,后面的容器内部端口不要改就可以了。

存储位置主要是把容器内的路径映射到宿主机达到数据的持久化,说人话就是把容器内部的配置文件和运行数据写到宿主机的指定目录,或者是容器能够读写宿主机提供的数据。如果你不做存储路径的映射,容器的配置和运行数据只能存在容器中,如果容器重启了数据会被清空。这里我们介绍一下图中的容器映射配置,第一条是把容器运行的配置文件映射到宿主机指定的目录,第二条是把宿主机的指定的数据目录映射给容器以达到容器能够调用外部数据的目的。

环境变量主要是一些容器运行需要的变量,一般容器镜像内已经定义好了基本不需要修改,如果你需要指定某些运行变量也可以自己添加修改,格式一般容器开发者会有相关说明。

功能主要是容器要用到的一些宿主机上的功能,一般容器镜像会默认指定,一般不需要修改,如果一些容器要求特殊权限,可以选择图中红框中的使用高权限执行容器术语叫做特权模式,特权模式非必要不要选择,由于容器使用的权限过高容器内运行的程序会影响宿主机的运行,容易污染系统内核造成死机。

网络主要指定了容器运行时使用的网络模式,none就是无网络,host是使用主机网络,就是容器和主机共用网络,这里要注意容器端口不能和主机运行的服务端口冲突,如果冲突就要要修改端口,有的容器可以修改内部端口有的不能,那就要看宿主机内部对应端口的应用能不能更改端口了。bridge-nas是我自己自建的网络和后面的bridge基本上功能是一致的。就是容器通过网桥连接宿主机,前面端口中我们讲过。

命令就是容器启动的时候要执行的命令可以添加到这里,一般也不需要设置。
3.Compose页

Compose页主要是管理容器的创建与运行参数的。这里我们会着重讲一下,因为我们平常部署容器都是通过这里,相对于命令行的方式,用Compose更直观更易用,不用每次都要SSH下执行,并且迁移容器更方便。这里我们从新增项目开始讲起:

上传docker-compose.yml是在你已经拥有已经编辑好的配置文件上传即可,这里我用创建docker-compose.yml方式来讲解一下过程和参数的说明。

来到这个页面,下面的代码框应该是空白的,你可以把在网上找到的教程里的compose代码直接粘贴到这里,然后修改好必要参数,点击确定就可以了。下面我们详细介绍一下compose文件的结构以及参数:

图中绿色的部分除了xiaomusic:这个字段都是固定的部分不能修改。蓝色部分是可修改的部分。
这里我们讲一下路径,一般分为绝对路径和相对路径:
绝对路径就是在飞牛系统中的真实路径或者原始路径,绝对路径可以在文件管理里右键点击你想要获得绝对路径的文件或者文件夹点击详细信息,然后点击复制原始路径得到。
相对路径就是相对于配置文件所在路径的路径,比如教程中我们用到的例子,由于我的compose配置文件存在/vol1/1000/docker/xiaomusic这个路径下,所以./conf这个路径的绝对路径是/vol1/1000/docker/xiaomusic/conf,就是说所有你需要在/vol1/1000/docker/xiaomusic下映射的路径都可以用./来代替。
这里还要说一点compose中定义的路径格式:./conf:/app/conf冒号前面是宿主路径可以随意修改,冒号后面是容器内路径,一般不能修改。
有的小伙伴会问,我在网上搜索的教程只有命令没有compose怎么办?我这里推荐一个很简单的方法,把你得到的命令交给deepseek或者豆包之类的ai工具让工具把命令转换成compose就可以了。
4.本地镜像页

本地镜像页就是管理已经下载的镜像页面,可以添加,更新和删除镜像,这里就不详说了。
5.镜像仓库页

这里就是我们手动下载镜像的地方,搜索框是搜索我们要找的镜像,仓库设置可以设置自定义的加速镜像的仓库地址。
6.网络页

这里就是管理现有网络的页面,前面关于各种网络的区别已经说过了就不在赘述了。
由于是新手向的教程这里还有一些相关的Docker知识没有讲到,但是日常使用应该够用了,如果需要高阶的Docker教程大家也可以在评论区回帖提出,如果教程内有什么错漏还请在评论区指正。