Ответ 1
Вы можете либо выставить несколько портов, например.
docker run -p 8080:80 -t -i <yourname>/<imagename>
docker run -p 8081:80 -t -i <yourname1>/<imagename1>
или поместите прокси (nginx, apache, лак и т.д.) перед вашими контейнерами API.
Обновление
Самый простой способ сделать прокси-сервер - связать его с контейнерами API, например. с конфигурацией apache
RewriteRule ^api1/(.*)$ http://api1/$1 [proxy]
RewriteRule ^api2/(.*)$ http://api2/$1 [proxy]
вы можете запускать свои контейнеры следующим образом:
docker run --name api1 <yourname>/<imagename>
docker run --name api2 <yourname1>/<imagename1>
docker run --link api1:api1 --link api2:api2 -p 80:80 <my_proxy_container>
Это может быть несколько громоздким, хотя если вам нужно перезапустить контейнеры api, так как необходимо будет перезапустить контейнер-посредник (ссылки еще довольно статичны в докере). Если это становится проблемой, вы можете посмотреть такие подходы, как fig или конфигурацию прокси-сервера: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/. Более поздняя ссылка также показывает проксирование с nginx.
Обновление II:
В более современных версиях докера можно использовать сеть, определенную пользователем вместо ссылок, показанных выше, для преодоления некоторых неудобств механизма устаревших ссылок.