The 31-year-old German skipper was arrested after bringing the ship into port without authorisation on Friday.
Rackete was accused of forcing her way past a police boat that tried to block her, a crime punishable by three to 10 years in jail.
Rackete would appear before a state prosecutor within 48 hours, according to her lawyer Leonardo Marino.
Italian media quoted police sources as saying Rackete had apologised for putting the police boat and the safety of those aboard at risk.
With Italy restricting entry into its ports, Sea-Watch 3 was stranded in the Mediterranean during a heatwave after rescuing 53 migrants off the coast of Libya 17 days ago.
Once Rackete forced the ship into port, the migrants were allowed to disembark and were taken to a reception centre.
The Italian coastguard then seized the rescue ship, anchoring it just off the coast.
German Foreign Minister Heiko Maas demanded a “swift clarification” of the charges against Rackete.
“Saving lives is a humanitarian duty,” he said.
“Sea rescues must not be outlawed.”
Maas’ argument was echoed by his Luxembourg counterpart, Jean Asselborn, while French Foreign Minister Christophe Castaner said that Italy’s decision to close its ports to those rescued at sea went against maritime law.