タイトル通り、Docker上に立てたAPIサーバーから、メール送信をしようとすると以下のような、エラーがでる

{ Error: getaddrinfo EAI_AGAIN ${SMTP_SERVER}:587
    at Object._errnoException (util.js:1022:11)
    at errnoException (dns.js:55:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
  code: 'ECONNECTION',
  errno: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: '${SMTP_SERVER}',
  host: '${SMTP_SERVER}',
  port: 587,
  command: 'CONN' }

どうやら外部ネットワークに接続できずに、止まってしまっているらしい

別にDockerの設定変更も行っていないのに。。。

nginx再起動してみよ・・・

$ docker-compose restart nginx

docker: Error response from daemon: failed to create endpoint db01 on network bridge: COMMAND_FAILED: '/sbin/iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0' failed: iptables: No chain/target/match by that name..

むむ、そういえばfirewalldをいじったぞ!
Googleさんに聞こう!

突然Dockerコンテナ内からネットワークに繋がらなくなったらiptablesを疑ってみよう
http://blue1st-tech.hateblo.jp/entry/2017/01/29/232733

どうやらfirewalldやiptablesを再起動させたりすると、Docker周りの設定がなくなってしまうようだ。

というこで、

$ systemctl restart docker

Dockerを再起動させたら直りました。

まとめ

iptablesを再起動したら、Dockerの再起動もしましょう!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.