Ubuntu の ufw で 3306 番を拒否していれば、docker run -p 3306:3306 で公開したポートにも外から届かない。
正答
× 誤り
解説
Linux の Docker は、ポートを公開するとファイアウォールの規則(nat テーブル)を自分で追加する。公開したポートへの通信は ufw が見る INPUT の規則に届く前に振り分けられるため、ufw で拒否していてもコンテナには届く。公式ドキュメントも Docker と ufw は両立しないと説明している。「ufw で塞いだから安全」という思い込みが典型的な事故の入り口で、外に出したくないポートは -p 127.0.0.1:3306:3306 のようにホスト側の IP を指定して公開するか、そもそも公開しない。クラウドのセキュリティグループのように VM の外で防ぐ仕組みも併用する。
参考: docs.docker.com
この問題を含む Docker のテストを制限時間つきで解く
Dockerクイズへ