Dubrovník se nachází v nejjižnější části Chorvatska, v jižní Dalmácii, rozkládá se na pobřežním výběžku pod úpatím hory Srdlje - 412 m. Od severu je chráněn vápencovým pohořím Popovo polje. Severozápadním směrem je sedm Elafitských /Jelení o./ ostrůvků, tři z nich jsou obydlené (Koločep, Lopud, Šipan) a jihovýchodním směrem je ostrůvek Lokrum. Město stojí na lokalitě seismicky aktivní, poslední větší zemětřesení jej postihlo v dubnu 1979. Z krasových jevů se v oblasti nachází několik jeskyní, některé jsou chráněny jako přírodní památka.