【Docker】IMAPサーバ(Dovecot)コンテナのインストールと動作確認まで

dockerコンテナでDovecot(IMAP)を構築したので手順をメモします。
このコンテナはDovecot社の公式イメージなっており、数十秒で構築することができます。

今回の環境は以下となります。

[root@mail ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011

前提条件としてDocker構築後の環境での手順となります。
Dockerインストール手順はこちらから

また、POPサーバーのコンテナ構築は本記事の最後尾にリンク先があるので参考にしてください。

「Docker」Dovecotコンテナ(popサーバ)の簡単構築手順

前回、POPサーバーのコンテナを構築した際にも使用したDockerイメージは「Dovecot社」公式のイメージを使用しています。
【Docker】dovecot/dovecot

Dovecotコンテナは以下のポートをサポートしています。

  • POP3 on 110, SSL 995
  • IMAP on 143, SSL 993
  • Submission on 587
  • LMTP on 24
  • ManageSieve on 4190

アクセスする「ユーザー名」はすべて受け入れ、パスワードは共通で「pass」となります。

構築手順は以下となります。

Dockerイメージダウンロード

Dockerイメージをダウンロードします。

[root@mail ~]# docker pull dovecot/dovecot

以下コマンドでイメージがダウンロードされていることを確認します。

[root@mail ~]# docker images
REPOSITORY           TAG       IMAGE ID       CREATED        SIZE
dovecot/dovecot      latest    14db6d609e15   2 months ago   179MB

Dockerコンテナ起動(IMAPサーバ)

以下コマンドでIMAPサーバのコンテナを起動させます。

POP(143)、SSL(993)にアクセスできるようにし、コンテナ名を「pop」としたコマンド例となります。

[root@mail ~]# docker run -p 143:143 -p 993:993 -d --name imap dovecot/dovecot

以下コマンドでIMAPのコンテナが起動できたことが確認できます。

[root@mail ~]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS             PORTS                                        NAMES
23ac68dc43e6   dovecot/dovecot      "/sbin/tini -- /usr/…"   4 hours ago    Up 4 hours         0.0.0.0:143->143/tcp, 0.0.0.0:993->993/tcp   imap

公式Dovecotコンテナは動作確認をしても認証エラーが発生する

前回、POPサーバのコンテナ起動後同様、デフォルトの設定では動作確認をしても以下の認証エラーが発生します。

-ERR [AUTH] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.

この認証エラーを回避手順は以下となります。

「Docker」Dovecotコンテナの認証エラー回避方法

前回同様、認証エラーはコンテナにアクセスし、「dovecot.conf」を編集します。
ちなみにデフォルトで編集コマンドのパッケージがないので「apt-get」でインストールします。

コンテナ名「imap」へアクセス

[root@mail ~]# docker exec -it imap /bin/bash

「vim」パッケージを「apt-get」でインストール

コンテナへアクセスと以下コマンドで「vim」パッケージをインストールします。

root@73e8a6598ec6:/# apt-get update
root@73e8a6598ec6:/# apt-get install vim

「dovecot.conf」編集

「dovecot.conf」に以下の文字列を追加します。

root@73e8a6598ec6:/# vim /etc/dovecot/dovecot.conf
 
#最後尾に追加
disable_plaintext_auth= no

Dockerコンテナ再起動

「dovecot.conf」を編集後、コンテナを「restart」コマンドで再起動します。

[root@mail ~]# docker restart imap
imap

「Dovecot」コンテナ正常動作確認(IMAP)

telnet」コマンドで動作確認を実施します。

[root@mail ~]# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot ready.
1 login test@mail.com pass
1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY] Logged in

2 list "" *
* LIST (\HasNoChildren) "/" INBOX
2 OK List completed (0.001 + 0.000 secs).
3 select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1615100731] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
3 OK [READ-WRITE] Select completed (0.002 + 0.000 + 0.001 secs).
4 logout
* BYE Logging out
4 OK Logout completed (0.001 + 0.000 secs).
Connection closed by foreign host.

認証エラーは発生せず、正常に動作したことが確認できました。

Dovecot「POPサーバ」構築手順はこちら

SMTP(Postfix)コンテナの構築手順はこちら




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!