Trasteando con docker, podéis ayudarme?

Saludos! Siempre he tirado de máquinas virtuales pero ahora tengo un servidor bastante limitado y me he iniciado en este mundillo y tengo algunas dudas.

Ya he estado probando y sé cómo se instalan las imágenes y demás. En mi caso en particular tengo un NAS con un Ubuntu Server al que le he instalado Docker. He creado dos imágenes (se llaman imágenes en castellano, verdad?), en una quiero PERMANENTEMENTE tener corriendo un Pi-hole y en otra software para unos equipos (Unifi).

Me gustaría que cada Docker se ejecutase siempre (aunque sea en segundo plano) y que además tuviera una IP fija independiente del sistema principal...esto es posible o me estoy columpiando mucho?
Antes tiraba de Proxmox, tenía una VM para cada función y cada VM tenía su propia ip y demás pero ahora que estoy con un equipo muy limitado me gustaría saber si puedo hacer algo similar con Docker.

Gracias por adelantado!

PD: No me importaría compartir la misma IP de hacer falta (a fin de cuentas tampoco tengo una red muy compleja), la mayoría de servicios necesitan el puerto además de la IP, pero me parece que voy a tener problemas con el Pi-hole si este comparte IP.
Le puedes dar una ip a cada contenedor, pero para no complicarte usaría la ip del nas y expones los puertos que veas necesarios.

Puedes usar esto, pero yo no me complicaria si no es necesario ya que si no sabes como va es un engorro:
https://docs.docker.com/network/macvlan/

Para que el docker se ejecute siempre le puedes añadir el parametro (su función es que si apagas el nas o lo reinicias, se encarga de parar el docker y rearrancarlo con el apagado y arranque del sistema)
restart: always

Para unifi si no sabes cual usar, el del repo de jacobalberty va bastante fino.

Suerte [oki]
Yo soy partidario de que uses docker-compose.

Permite definir de forma muy cómoda los dockers.

Ejemplo para Pi Hole sacado del propio Docker Hub

version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "80:80/tcp"
      - "443:443/tcp"
    environment:
      TZ: 'America/Chicago'
      # WEBPASSWORD: 'set a secure password here or it will be random'
    # Volumes store your data between container upgrades
    volumes:
       - './etc-pihole/:/etc/pihole/'
       - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    dns:
      - 127.0.0.1
      - 1.1.1.1
    # Recommended but not required (DHCP needs NET_ADMIN)
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN
    restart: unless-stopped



Después le haces un docker-compse up -d en la carpeta dónde esté el docker-compose.yml y fuera.

Puedes definir varios contenedores (instalas imágenes, pero cada configuración de una imagen es un contenedor) en un mismo docker-compose, muy útil para tener toda la configuración de tu servidor en un solo fichero.

Como vez en el ejemplo, para el tema de inicie siempre, basta con configurar el parámetro «restar», que puede ser always o unless-stopped entre otros.

En este caso, se iniciaría siempre (tras reiniciar el servidor, si el servicio se bloquea...) salvo que tú la pares manualmente.
Lo suyo es que para cada contenedor expongas el puerto que necesites. Menos lio.
Será más sencillo si lo haces todo con una ip, pero por poder puedes bindear a un ip del host al mapear el puerto, por lo que podrias añadir n ips distintas al eth0 del host e ir bindeando cada servicio a uno con -p 192.168.2.3:443:443 y tal
4 respuestas