docker构建镜像
文章参考:
https://github.com/bingohuang/play-docker-imageshttps://www.cnblogs.com/zhaodalei/p/16474682.htmlhttps://blog.csdn.net/inthat/article/details/124060033
https://github.com/bingohuang/play-docker-imageshttps://www.cnblogs.com/zhaodalei/p/16474682.htmlhttps://blog.csdn.net/inthat/article/details/124060033平常写Blog喜欢使用Markdown,之前使用的在线编辑器加载速度有点不满意,所以自己搭建了个
原来项目中使用的是www.emoji-cheat-sheet.com网站的表情包,不知道怎么回事反正就是不显示了,这里使用本地替换:laughing:表情包下载地址https://github.com/SemiWarm/SemiWarmAdminPhotos/blob/master/emoji.zip
解压到/plugins/emoji-dialog目录
修改editormd.js文件
editormd.emoji = {
path : "../plugins/emoji-dialog/emoji/", //替换为目录地址
ext : ".png"
};https://github.com/pandao/editor.mdhttps://blog.csdn.net/rosemarrytop/article/details/73740497#列出所有可用的键盘布局
ls /usr/share/kbd/keymaps/**/*.map.gz
#更改键盘布局
loadkeys de-latin1ls /sys/firmware/efi/efivars有线网
ip link
dhcpcd无线网
iwctl
station wlan0 scan //网络的扫描 wlan0替换成你自己的网卡名称
station wlan0 get-networks //列出扫描到的网络
station wlan0 connect wifiname //连接指定网络 输入密码回车确认
quit //退出使用ping命令测试网络连接
ping www.baidu.comtimedatectl set-ntp truefdisk -l //查看目前的分区情况
fdisk /dev/sdx //请将sdx替换成你要操作的磁盘如sdb sdc等1.如果你是一块全新的硬盘:输入g来创建一个全新的gpt分区表,否则直接进行第2步
2.输入n创建一个新的分区,首先会让你选择起始扇区,一般直接回车使用默认数值即可,然后可以输入结束扇区或是分区大小,这里我们输入+512M来创建一个512M的引导分区。
3.这时我们可以输入p来查看新创建的分区
4.输入t并选择新创建的分区序号来更改分区的类型,输入l可以查看所有支持的类型,输入ef更改分区的类型为EFI
5.输入w来将之前所有的操作写入磁盘生效,在这之前可以输入p来确认自己的分区表没有错误。
6.输入以下命令来格式化刚刚创建的引导分区:
mkfs.fat -F32 /dev/sdxY //请将sdxY替换为刚创建的分区现在引导分区就创建好了。
文章参考:
wiki.archlinux.org/index.php/Installation_guide_(简体中文)https://www.viseator.com/2017/05/17/arch_install/<?php $this->options->title(); ?><?php if ($this->is('index')) : ?> - 此心拖泥带水,是人生苦处<?php endif; ?></title> 环境介绍:
CENTOS8
宝塔面板
面板后台安装Docker管理器 3.0
Docker管理器 3.0 -镜像管理-获取镜像-官方库-analogic/poste.io
到这里docker准备就完成了
SSH登录主机设置hostname
查看当前主机名hostnamectl
sudo hostnamectl set-hostname mx.90il.com
sudo systemctl restart systemd-hostnamed以下88.88.88.88代表你的邮箱服务器IP
| 域名 | 记录类型 | 记录值 | 优先级 | |
|---|---|---|---|---|
| 90il.com | A | Any_IP | ||
| mx.90il.com | A | 88.88.88.88 | ||
| 90il.com | MX | mx.90il.com | 10 | |
| mail.90il.com | CNAME | mx.90il.com | ||
| smtp.90il.com | CNAME | mx.90il.com | ||
| imap.90il.com | CNAME | mx.90il.com | ||
| 90il.com | TXT | v=spf1 mx ~all | ||
| _dmarc.90il.com | TXT | v=DMARC1; p=none; rua=mailto:dmarc_report@90il.com |
dmarc解释
v:版本(纯文本;必要的)值为“DMARC1”,必须作为第一个标签。
p:用于告知收件方,当检测到某邮件存在伪造发件人的情况,收件方要做出什么处理,reject为拒绝该邮件;none为不作任何处理;quarantine为将邮件标记为垃圾邮件。
rua:发送综合反馈的邮件地址(逗号分隔的DMARC URI纯文本列表;可选的)
ruf:用于当检测到伪造邮件,收件方须将检测结果发送到哪个邮箱地址。
服务器RDNS需要服务商支持,部分服务商可在后台自己设置,部分需要提交工单,建议联系客服添加
88.88.88.88 PTR mx.90il.comdocker run \
--net=host \
-v /home/data:/data \
--name "mailserver" \
-h "mx.90il.com" \
-e "TZ=Asia/Shanghai" \
-e "HTTP_PORT=5080" \
-e "HTTPS_PORT=5443"\
-e "DISABLE_CLAMAV=TRUE" \
-e "DISABLE_RSPAMD=TRUE" \
-itd analogic/poste.io这里我们的容器在服务器重启后,不会自动运行。使用以下命令更新docker
docker update --restart=always mailserver| 端口号 | 目的 | |
|---|---|---|
| 25 | SMTP-主要处理入站邮件 | |
| 80 | HTTP-重定向到https并进行身份验证以加密服务 | |
| 110 | POP3-用于访问邮箱的标准协议,在客户端身份验证之前需要STARTTLS | |
| 143 | IMAP-用于访问邮箱的标准协议,在客户端身份验证之前需要STARTTLS | |
| 443 | HTTPS-访问管理或Webmail客户端 | |
| 465 | SMTPS-旧版SMTP端口 | |
| 587 | MSA-STARTTLS和身份验证后主要用于电子邮件客户端的SMTP端口 | |
| 993 | IMAPS-自连接以来已加密的IMAP备用端口 | |
| 995 | POP3S-自连接以来已加密的POP3 | |
| 4190 | 远程筛子设置 |
添加网站太过简单不写了, mail.90il.com
网站-设置-反向代理
代理名称:mail
目标URL:https://127.0.0.1:5443
点击提交,开启反代。即可访问mail.90il.com
添加邮箱地址:mail.90il.com/admin
Roundcube web管理客户端:mail.90il.com/webmail
docker images //列出镜像
docker ps -a //列出容器
docker stop mailserver //停止mailserver容器
docker rm e4f34331e935 //删除e4f34331e935容器
docker exec -it d13b43c464b6 /bin/bash //进入d13b43c464b6容器poste.io的DKIM配置比较简单,这里先不写了
配置完要在域名解析加入DKIM的TXT解析
https://poste.io/ poste.io官方https://beekc.top/2019/01/26/build-poste-io-mail-server/https://qing.su/article/139.html