For simplicity, I've tried to work with automorphism and inner automorphism groups by using the operator /. Although this attempt effectively computes the correct group, which is called the outer automorphism group, its elements do not show up as maps. Here is a quick GAP code to view the situation:
gap> D := DihedralGroup(8);;
gap> autD := AutomorphismGroup(D);;
gap> innD := InnerAutomorphismsAutomorphismGroup(autD);;
gap> outD := autD / innD;;
gap> StructureDescription(outD);
"C2"
gap> IsMapping(outD.1);
false
I usually avoid the terminology "outer automorphism" because it is misleading: those are not automorphisms, they are equivalence classes of automorphisms only.
You could of course ask GAP for a representative of one of these equivalence classes; but then make sure what you are doing with it really is independent of which representative you picked...