This right here.
If you don't have that option, do not try to bring it carry-on, of course, because if you have syringes/needles as well in the carry-on you have to declare it and have it inspected.
This is what I have done many times with no issues:
If you are checking a bag, put it in there. If you don't have a trt script, take the vial, remove the ugl labeling, and put the vial into a empty prescription bottle. Whatever you have on hand.
The prescription bottle and the syringes/needles go into a to-go little medical bag/pack, like below. It's smaller than a toiletry bag. Costs less than $20 on Amazon. The TSA/airport workers don't give little medical bags like this a second look.
As for cruise inspections, haven't been through that yet with gear, so not sure........
View attachment 73243