A controller comprising: a bubble control unit configured to control an ejection mechanism configured to eject bubbles into water through an air outlet provided in a hull of a vessel; and a propulsion control unit configured to control a propulsion force of a propulsion mechanism configured to propel the hull, wherein the propulsion mechanism includes a main engine configured to rotate a propeller, one of the propulsion control unit and the bubble control unit is controlled according to control of the other, and the bubble control unit controls the ejection mechanism according to control of the propulsion control unit; a command receiver configured to receive a command signal commanding a magnitude of the propulsion force of the propulsion mechanism and an actual signal indicating a current magnitude of the propulsion force, wherein the propulsion control unit controls the propulsion force of the propulsion mechanism on a basis of a comparison result between the command signal and the actual signal, and the bubble control unit increases an ejection amount of bubbles when the command signal indicates speed increase, or reduces the ejection amount of the bubbles when the command signal indicates speed reduction; characterized in that the command signal is a signal commanding a target rotation rate of the main engine, the actual signal is an actual rotation rate, the actual rotation rate being a current rotation rate of the main engine, the controller comprises an overload predictor configured to predict whether a load of the main engine exceeds a predetermined load according to the target rotation rate, the actual rotation rate, and a current fuel input amount of the main engine, and the bubble control unit increases the ejection amount of the bubbles when the overload predictor predicts that the predetermined load is exceeded. a bubble control unit configured to control an ejection mechanism configured to eject bubbles into water through an air outlet provided in a hull of a vessel; and a propulsion control unit configured to control a propulsion force of a propulsion mechanism configured to propel the hull, wherein the propulsion mechanism includes a main engine configured to rotate a propeller, one of the propulsion control unit and the bubble control unit is controlled according to control of the other, and the bubble control unit controls the ejection mechanism according to control of the propulsion control unit; a command receiver configured to receive a command signal commanding a magnitude of the propulsion force of the propulsion mechanism and an actual signal indicating a current magnitude of the propulsion force, wherein the propulsion control unit controls the propulsion force of the propulsion mechanism on a basis of a comparison result between the command signal and the actual signal, and the bubble control unit increases an ejection amount of bubbles when the command signal indicates speed increase, or reduces the ejection amount of the bubbles when the command signal indicates speed reduction; characterized in that the command signal is a signal commanding a target rotation rate of the main engine, the actual signal is an actual rotation rate, the actual rotation rate being a current rotation rate of the main engine, the controller comprises an overload predictor configured to predict whether a load of the main engine exceeds a predetermined load according to the target rotation rate, the actual rotation rate, and a current fuel input amount of the main engine, and the bubble control unit increases the ejection amount of the bubbles when the overload predictor predicts that the predetermined load is exceeded.