Taking a course that deals with these; the actual specifics is not pertinent to the course, but I generally have interest in trying to understand things regardless.
I have a docker-compose.yml file which I 'call on', or 'spin up'. The file contains the following information:
services:
  redis:
    image: redis:latest
    expose:
      - "6379"
  sample0395:
    image: sample0395/base:latest
    stdin_open: true
    tty: true
    expose:
      - "8888"
    ports:
      - "8888:8888"
From what I understand, and just based on the hierarchy as shown:
- redis and sample0395 are 'services'
 - redis:latest and sample0395/base:latest are the image_name:tag combinations
 - expose and ports: list the ports (not sure what the difference is or what the significance is of the difference between these two)
 - I have no idea what stdin_open or tty do, and cannot seem to get an understanding through google.