Docker Community Forums

Share and learn in the Docker community.

How would the yaml look like creating a apache container to serve as mapping from domains to containers running on :8000 and :8080?

Based on what I researched I need a webserver container to server as a mapping between my domains and my containers, one running on 8000 and another 8080.

Is that possible to configure that also in the yaml? I am having difficulty assimilating this concept.

any directions are appreciated

I have the following YAML:

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

thanks

register a dns name for your domain, point it to the public ip of your docker host. Run a reverse proxy container on Port 80/443 and use the reverse proxy to forward traffic to the target containers. If you use docker-compsoe, you might want to take a look at Traefik, as it allows to declare reverse proxy rules using labels on the target container.

I would highly recommend to NOT directly expose your docker host to the internet.