Gibt es außer "funktioniert nicht" auch eine bessere Fehlerbeschreibung? Flexbox ist vielleicht am Anfang etwas verwirrend, aber sollte hier der bevorzugte Weg sein. Auch, weil es funktioniert. Eventuell hast du die Flexbox dem falschen Container zugeordnet?
Hier noch ein Guide zu flexbox, das für mich am Anfang verwirrende bei Flexbox war die Unterscheidung zwischen "was muss ich dem Container und was muss ich den Kindelementen sagen" um das gewünschte Ergebnis zu erreichen.
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
In deinem Fall muss display:flex und justify-content: center auf die ul angewandt werden.