Как вариант:
nginx на основной системе:
./nginx/sites-enabled/site1.conf:
{
  listen 80;
  server_name site1.example.org;
  location / {
     proxy_pass: http://127.0.0.1:8081;
 }
}
./nginx/sites-enabled/site2.conf:
{
  listen 80;
  server_name site2.example.org;
  location / {
     proxy_pass: http://127.0.0.1:8082;
 }
}
Контейнеры для site1:
docker-compose.yml
nginx:
    volumes:
        - ./:/opt/site1-root
        - ./config/nginx:/etc/nginx/conf.d
    ports:
      - "0.0.0.0:8081:80"
./conf/nginx/site1_local.conf
{
   listen 80;
   
   local / {
       root  /opt/site1-root;
   }
}
Контейнеры для site2:
docker-compose.yml
nginx:
    volumes:
        - ./:/opt/site2-root
        - ./config/nginx:/etc/nginx/conf.d
    ports:
      - "0.0.0.0:8082:80"
./conf/nginx/site2_local.conf
{
   listen 80;
   
   local / {
       root  /opt/site2-root;
   }
}
Можно без  nginx в контейнерах обойтись, и сразу биндить порт в основной системный nginx, можно сделать свой network  - смотря что у вас крутится и как организовано.