五分钟了解Docker基础
开始使用前,我们先了解下Docker相关的一些知识,以便于了解后面出现的一些名词;
Docker的详细介绍可以查看:Docker — 从入门到实践
.1. 什么是 Docker
Docker基于Linux内核的cgroup、namespace以及OverlayFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
您可以简单地把Docker 容器当作一个效率很高的虚拟机,容器内部与宿主机隔离; (当然它不是真的虚拟机)
因此它需要端口映射 (用来访问容器内的网络服务),目录映射 (用来存储文件)
.1.1 什么是 镜像
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
镜像不包含任何动态数据,其内容在构建之后也不会被改变。
根据不同的使用场景或平台,镜像会有不同的标签,比如:
latest,arm-latest
mtphotos/mt-photos:latest
mtphotos/mt-photos:arm-latest
mtphotos/mt-photos:nodb-latest
.1.2 什么是 容器
容器是镜像运行时的实体,容器可以被创建、启动、停止、删除、暂停等。
容器内部存储的生存周期和容器一样,容器删除时,容器内的存储也会删除。因此,任何保存于容器内部存储的文件都会随容器删除而丢失。
因此创建容器时需要使用数据卷(Volume)或者目录映射 来存储文件;
下面是一段使用docker run创建容器的命令:
提示:某些系统中(比如Windows),不支持 \ 换行,需要将 \ 删了,合并为一行输入
.1.3 什么是 目录映射
通过目录映射,可以将宿主机的目录挂载到容器内指定的目录;
这样容器内的文件,比如数据库、缩略图、备份的照片等可以存到宿主机中的目录下;
在docker run 命令中, -v /xxx/mt_photos/config:/config 就是一个目录映射;
注意:目录的路径只能是绝对路径,即 / 开头
:左侧 (/xxx/mt_photos/config)为宿主机目录路径,在创建容器前需要提前创建好
:右侧 (/config)为容器内的目录,通常不需要修改
对于MT Photos容器,只有 /config 和 /upload 是必须映射的,别的目录可以先不添加;
重要提示: 宿主机的目录,不要重复映射到容器内
重要提示: 宿主机的目录,不要重复映射到容器内
重要提示: 宿主机的目录,不要重复映射到容器内
比如下面的错误示范
错误示范1:
-v /mnt/docker/mt_photos/config:/config -v /mnt/photos/mt_photos:/upload -v /mnt/photos/mt_photos:/photos
存在的问题: /mnt/photos/mt_photos 文件夹下的文件,在容器内都会被识别为2个文件
比如 /mnt/photos/mt_photos/1.jpg 在容器内会识别为2个文件 /upload/1.jpg 和 /photos/1.jpg
/upload不和别的目录共用
/upload目录下会自动创建 .MT_UPLOAD_FOLDER 文件,用来表示这个备份用的目录;
当另外的目录下有.MT_UPLOAD_FOLDER文件时,扫描图库会跳过这个目录,比如上方的/photos目录;
错误示范2:
-v /mnt/docker/mt_photos/config:/config -v /mnt/photos/mt_photos:/upload -v /mnt/photos:/photos
存在的问题: /mnt/photos/mt_photos 文件夹下的文件,在容器内都会被识别为2个文件
比如 /mnt/photos/mt_photos/1.jpg 在容器内会识别为2个文件 /upload/1.jpg 和 /photos/upload/1.jpg
正确示范:
-v /mnt/docker/mt_photos/config:/config -v /mnt/mt_photos:/upload -v /mnt/photos/:/photos
.1.4 什么是 端口映射
由于容器内部的网络和外部是隔离的,当外部需要访问容器内的服务时,就需要添加端口映射;
在docker run 命令中, -p 8163:8063 就是一个端口映射;
:左侧 8163为宿主机端口号,是外部用来访问的端口,比如 http://192.168.1.8:8163
:右侧 8063为容器内的端口号,通常不能修改,因为容器内服务绑定端口是固定的
这里的8163只是为了举例,实际使用中,一般2边会使用一样的端口号
-p 8063:8063如果遇到宿主机的8063端口已经被占用了,那么就需要调整宿主机端口号;
但是容器内的端口号不能修改,因为容器内服务只会使用默认固定的端口号;
.1.5 什么是 环境变量
环境变量是容器内程序运行时,会读取的某些配置项;通过环境变量可以自定义容器内的某些功能;
在docker run 命令中, -e TZ="Asia/Shanghai" 就是一个环境变量;
TZ 就是环境变量的名称,TZ用来指定时区
"Asia/Shanghai" 就是环境变量的值,也就是时区的值
.2. yaml模板
version: "3" services: mtphotos: image: mtphotos/mt-photos:latest container_name: mt-photos restart: always ports: - 8063:8063 volumes: - /mnt/docker/mt_photos/config:/config - /mnt/mt_photos:/upload - /mnt/photos:/photos environment: - TZ=Asia/Shanghai
yaml语法三大规则
.2.0.1 规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成,一定不能使用tab键
.2.0.2 规则二:冒号
services: image: mtphotos/mt-photos:latest每个冒号后面一定要有一个空格(以冒号结尾不需要空格)
.2.0.3 规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
environment: - TZ=Asia/Shanghai -.UTF-8 - PUID=1000 - PGID=100
1. 安装
如果您的NAS系统在以下列表中,可以点击下方链接查看单独的安装方法
- Unraid
- TrueNAS Scale
- DSM(群晖)
- 飞牛私有云
- QNAP(威联通)
- CasaOS
Windows版本服务端的安装方法请查看: Windows服务端的安装方法
使用Portainer安装的方法请查看: Portainer使用方法
提示:在享受本文内容的同时,请注意版权归属 徐州鑫坤机电设备有限公司https://www.xzxkjd.com如果您觉得有价值欢迎分享,但请务必注明出处,感谢您的理解,谢谢!
以下部分内容需要登录查看 立即登录
相关内容
- 五分钟了解Docker基础
- 上海非急救出租服务全解析
- 深耕中考复读赛道 深圳深才教育为复读生搭建升学桥梁
- 阳光下的童年:那些被温暖照亮的纯真时光
- 群晖DSM7.0-7.21监控套件Surveillance Station 9.20-11289开心版60个许可证设置教程(无重启、无断流、无卡死、史上最完美)
- 云服务器+SD-WAN组网和域名DNS解析
- 在云主机上安装iKuai OS,实现SD-WAN组网,利用云主机80;443端口搭建企业网站。个人博客。让云主机当做你的堡垒机,实现数据本地化。
- 中央空调只开一台=全开耗电?真相让人意外!
- 告别卡顿时代:PCDN正成为互联网内容分发的核心引擎
- 5G时代必备!PCDN如何让视频加载速度快如闪电?
- 降本增效利器!企业都在用的PCDN技术到底强在哪?
- 揭秘PCDN业务:如何用边缘计算重构内容分发新生态?
 简体中文
简体中文 繁體中文
繁體中文 English
English Nederlands
Nederlands Français
Français Русский язык
Русский язык Polski
Polski 日本語
日本語 ภาษาไทย
ภาษาไทย Deutsch
Deutsch Português
Português español
español Italiano
Italiano 한어
한어 Suomalainen
Suomalainen Gaeilge
Gaeilge dansk
dansk Tiếng Việt
Tiếng Việt Pilipino
Pilipino Ελληνικά
Ελληνικά Maori
Maori tongan
tongan ᐃᓄᒃᑎᑐᑦ
ᐃᓄᒃᑎᑐᑦ ଓଡିଆ
ଓଡିଆ Malagasy
Malagasy Norge
Norge bosanski
bosanski नेपालीName
नेपालीName čeština
čeština فارسی
فارسی हिंदी
हिंदी Kiswahili
Kiswahili ÍslandName
ÍslandName ગુજરાતી
ગુજરાતી Slovenská
Slovenská היברית
היברית ಕನ್ನಡ್Name
ಕನ್ನಡ್Name Magyar
Magyar தாமில்
தாமில் بالعربية
بالعربية বাংলা
বাংলা Azərbaycan
Azərbaycan lifiava
lifiava IndonesiaName
IndonesiaName Lietuva
Lietuva Malti
Malti català
català latviešu
latviešu УкраїнськаName
УкраїнськаName Cymraeg
Cymraeg ກະຣຸນາ
ກະຣຸນາ తెలుగుQFontDatabase
తెలుగుQFontDatabase Română
Română Kreyòl ayisyen
Kreyòl ayisyen Svenska
Svenska հայերեն
հայերեն ဗာရမ်
ဗာရမ် پښتوName
پښتوName Kurdî
Kurdî Türkçe
Türkçe български
български Malay
Malay मराठीName
मराठीName eesti keel
eesti keel മലമാലം
മലമാലം slovenščina
slovenščina اوردو
اوردو አማርኛ
አማርኛ ਪੰਜਾਬੀName
ਪੰਜਾਬੀName albanian
albanian Hrvatski
Hrvatski Suid-Afrikaanse Dutch taal
Suid-Afrikaanse Dutch taal ខ្មែរKCharselect unicode block name
ខ្មែរKCharselect unicode block name


 印修
 印修

