主页

ubuntu - docker 安装 mailcow 邮件系统

2026-02-28 04:16PM

参考文档:https://docs.mailcow.email/getstarted/install/

1. 安装前置条件

1.1 需要先安装下面这些内容:

git

openssl

curl

awk

sha1sum

grep

cut

jq

1.2 更新并安装配置 

$ apt update
$ apt install -y git openssl curl gawk coreutils grep jq

2. 安装 docker  

$ curl -sSL https://get.docker.com/ | CHANNEL=stable sh
$ systemctl enable --now docker

3. 安装 docker compose

$ apt update
$ apt install docker-compose-plugin

4. 安装 mailcow

4.1 克隆仓库

$ su
$ umask 0022
$ cd /opt
$ git clone https://github.com/mailcow/mailcow-dockerized
$ cd mailcow-dockerized

4.2 生产配置文件

$ ./generate_config.sh

这个配置文件,并不会修改对服务器的 hostname、server 等内容,所以可以运行

4.3 下载镜像

$ docker compose pull

下载镜像需要等待大概20分钟左右

4.4 下载完之后,并启动容器

$ docker compose up

 

发现报错了:

Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint mailcowdockerized-nginx-mailcow-1 (4b82711fae53100c7fac3db77812a3e99ec80e8759dfa34941fe571b8f5529a3): Bind for 0.0.0.0:80 failed: port is already allocated

主要是因为:我服务器的 80 端口已经被占用了,mailcow 的 nginx 容器还在尝试绑定 80 端口,所以启动失败

4.5 解决方法:强制修改 mailcow 端口映射

创建 docker-compose.overide.yml 文件来覆盖默认的 80/443 端口映射

4.5.1 先停止当前启动失败的容器

$ cd /opt/mailcow-dockerized

$ docker compose down

4.5.2 禁用自动 ssl 证书申请

$ vim mailcow.conf

找到下面这3行: 

SKIP_LETS_ENCRYPT=n
HTTP_PORT=80
HTTPS_PORT=443

修改为下面这样:

SKIP_LETS_ENCRYPT=y   # 禁用 Let's Encrypt 自动申请
HTTP_PORT=8081          # 与 override 中的 81 对应
HTTPS_PORT=4443        # 与 override 中的 444 对应

4.5.3 把你的 ssl 证书文件(key.pem,cert.pem)上传到 /opt/mailcow-dockerized/data/assets/ssl 目录下

如果你的证书文件格式是 key.key 和 cert.crt 那么需要转换格式

# 转换私钥(需要输入证书密码,没有则直接回车)
openssl rsa -in key.key -out key.pem
# 转换证书
openssl x509 -in cert.crt -out cert.pem

设置正确的权限

$ chmod 644 data/assets/ssl/key.pem

$ chmod 644 data/assets/ssl/cert.pem

4.5.4 重启 mailcow

$ docker compose up -d

然后 docker ps 查看是否启动成功

/opt/mailcow-dockerized# docker ps
CONTAINER ID   IMAGE                                   COMMAND                  CREATED         STATUS                            PORTS                                                                                                                                                                                                                                         NAMES
386fb9c0a340   ghcr.io/mailcow/watchdog:2.09           "/watchdog.sh"           8 minutes ago   Up 5 seconds                                                                                                                                                                                                                                                                    mailcowdockerized-watchdog-mailcow-1
6b70da3248ca   ghcr.io/mailcow/acme:1.95               "/sbin/tini -g -- /s…"   8 minutes ago   Up 5 seconds                                                                                                                                                                                                                                                                    mailcowdockerized-acme-mailcow-1
afc2fdd2b1c0   ghcr.io/mailcow/nginx:1.05              "/docker-entrypoint.…"   8 minutes ago   Up 6 seconds                      0.0.0.0:4443->4443/tcp, [::]:4443->4443/tcp, 80/tcp, 0.0.0.0:8081->8081/tcp, [::]:8081->8081/tcp                                                                                                                                              mailcowdockerized-nginx-mailcow-1
69a9c78dffe4   mcuadros/ofelia:latest                  "/usr/bin/ofelia dae…"   8 minutes ago   Up 36 seconds                                                                                                                                                                                                                                                                   mailcowdockerized-ofelia-mailcow-1
96f3560c54e3   ghcr.io/mailcow/rspamd:3.14.2           "/docker-entrypoint.…"   8 minutes ago   Up 6 seconds                                                                                                                                                                                                                                                                    mailcowdockerized-rspamd-mailcow-1
2b889745c801   ghcr.io/mailcow/dovecot:2.3.21.1-1      "/docker-entrypoint.…"   8 minutes ago   Up 36 seconds                     0.0.0.0:110->110/tcp, [::]:110->110/tcp, 0.0.0.0:143->143/tcp, [::]:143->143/tcp, 0.0.0.0:993->993/tcp, [::]:993->993/tcp, 0.0.0.0:995->995/tcp, [::]:995->995/tcp, 0.0.0.0:4190->4190/tcp, [::]:4190->4190/tcp, 127.0.0.1:19991->12345/tcp   mailcowdockerized-dovecot-mailcow-1
3dc2ceae4dd5   ghcr.io/mailcow/postfix:3.7.11-1        "/docker-entrypoint.…"   8 minutes ago   Up 6 seconds                      0.0.0.0:25->25/tcp, [::]:25->25/tcp, 0.0.0.0:465->465/tcp, [::]:465->465/tcp, 0.0.0.0:587->587/tcp, [::]:587->587/tcp, 588/tcp                                                                                                                mailcowdockerized-postfix-mailcow-1
1cdefb5059f3   ghcr.io/mailcow/phpfpm:8.2.29-1         "/docker-entrypoint.…"   8 minutes ago   Up 36 seconds                     9000/tcp                                                                                                                                                                                                                                      mailcowdockerized-php-fpm-mailcow-1
90210e28f6be   mariadb:10.11                           "docker-entrypoint.s…"   8 minutes ago   Up 37 seconds                     127.0.0.1:13306->3306/tcp                                                                                                                                                                                                                     mailcowdockerized-mysql-mailcow-1
04e284316455   redis:7.4.6-alpine                      "/bin/sh /redis-conf…"   8 minutes ago   Up 37 seconds                     127.0.0.1:7654->6379/tcp                                                                                                                                                                                                                      mailcowdockerized-redis-mailcow-1
64854d042403   ghcr.io/mailcow/postfix-tlspol:1.8.22   "/docker-entrypoint.…"   8 minutes ago   Up 6 seconds                                                                                                                                                                                                                                                                    mailcowdockerized-postfix-tlspol-mailcow-1
3bb42a1b319e   ghcr.io/mailcow/clamd:1.71              "/sbin/tini -g -- /c…"   8 minutes ago   Up 6 seconds (health: starting)                                                                                                                                                                                                                                                 mailcowdockerized-clamd-mailcow-1
562d621fba32   memcached:alpine                        "docker-entrypoint.s…"   8 minutes ago   Up 37 seconds                     11211/tcp                                                                                                                                                                                                                                     mailcowdockerized-memcached-mailcow-1
c52682ec35a6   ghcr.io/mailcow/unbound:1.24            "/docker-entrypoint.…"   8 minutes ago   Up 37 seconds (healthy)           53/tcp, 53/udp                                                                                                                                                                                                                                mailcowdockerized-unbound-mailcow-1
55a430bcec70   ghcr.io/mailcow/sogo:5.12.4-1           "/docker-entrypoint.…"   8 minutes ago   Up 37 seconds                                                                                                                                                                                                                                                                   mailcowdockerized-sogo-mailcow-1
abab306a4bbd   ghcr.io/mailcow/dockerapi:2.11          "/bin/sh /app/docker…"   8 minutes ago   Up 37 seconds                                                                                                                                                                                                                                                                   mailcowdockerized-dockerapi-mailcow-1
0c817432090d   ghcr.io/mailcow/olefy:1.15              "python3 -u /app/ole…"   8 minutes ago   Up 37 seconds                                                                                                                                                                                                                                                                   mailcowdockerized-olefy-mailcow-1
6aad41a57205   ghcr.io/mailcow/netfilter:1.63          "/bin/sh -c /app/doc…"   8 minutes ago   Up 37 seconds                                                                                                                                                                                                                                                                   mailcowdockerized-netfilter-mailcow-1

发现已经启动了,在浏览器里面访问服务器 IP + 4443

发现已经可以打开了

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论