Dubrovnik is the southern-most city in Croatia, and the easiest way to reach it is by air. However, depending on your travel preferences, you may choose to take a train or a ferry.
By air
Dubrovnik has an international airport (DBV) located about 18 km from the heart of the city's Old Town (Stari Grad). Flights come in daily from many European cities. British Airways operates regular flights from London. Croatia Airlines has flights from Rome, Paris, Frankfurt, Zurich, and Amsterdam. Easyjet has flights from Paris, Berlin, Milan, Geneva, and London. There are also multiple flights a day coming from Zagreb.
Many airlines offer additional flights during the summer months: AirBerlin offers flights from Munich and Stuttgart, while TransAero has flights from Moscow. Finally, you could consider flying into Montenegro (Tivat) and traveling 100km to Dubrovnik by car.
By sea
An interesting way to get to Dubrovnik is by ferry. Dubrovnik is the southern-most stop on the Jadrolinija ferry service, and the most scenic routes are from Rijeka, stopping off at Rab, Split, Hvar and Korcula along the way. You can also travel to Dubrovnik by ferry from Bari, Italy.
By rail
The rail network connects all major Croatian cities, except Dubrovnik. There are direct lines to Slovenia, Hungary, Italy, Austria, Switzerland, Germany, Bosnia-Herzegovina and other countries. Indirect lines also exist, connecting Croatia to almost all other European countries. If you plan to travel by rail the best way is to arrive to Zagreb, Ploče or Split and take the bus from there to Dubrovnik.