this post was submitted on 13 Jun 2023
-6 points (12.5% liked)

Docker

1 readers
1 users here now

Everything about Docker! Here you can post news, hints or what else you can think of. The mod @Djokkum is pretty knowledgeable on the topic (and doesn't bite most of the time), so feel free to post any questions as well.

founded 1 year ago
MODERATORS
 

I have a netbox 3 instance on a docker server this is working well, but I need to migrate it to a new host.

How would I even begin that process?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 0 points 1 year ago (3 children)

Not familiar with netbox, so there may be nuance that I'm likely to miss. But I guess the first thing to do is understand exactly what you have. Are your containers deployed using docker compose? If so, just copy the compose file over to the new host, then docker compose up -d and your container stack should be running just the same. If your not using compose yet, there's a tool that can generate a compose file from running docker containers. That could make life easier.

The possibly more complicated bit is any persistent data - where is this? Is it in bind mounts on the host? Or volume mounts? Things like secrets and configuration will also need to be copied over and put in the right places, as just a compose file alone will only get you a greenfield setup

[–] [email protected] 0 points 1 year ago (2 children)

It starts with a docker-compose file. There's lots of persistent data and it's in volume mounts. I don't know if I'm making a lot of sense, I'm new to Docker and don't know all the right words to use yet.

If you have more than a few machines and are starting to lose track of which cables go where, and which IPs you're using, netbox is a good resource.

https://github.com/netbox-community/netbox

[–] [email protected] 0 points 1 year ago (1 children)

If you are comfortable with it you could share the contents of your docker-compose, that would make it a bit easier for us to give some pointers. Just be sure to redact any sensitive information (usernames, passwords, IP adresses etc.)

[–] [email protected] 1 points 1 year ago
version: '3.4'
services:
  netbox: &netbox
    image: netboxcommunity/netbox:${VERSION-v3.3-2.2.0}
    depends_on:
    - postgres
    - redis
    - redis-cache
    - netbox-worker
    env_file: env/netbox.env
    user: 'unit:root'
    volumes:
    - ./configuration:/etc/netbox/config:z,ro
    - ./reports:/etc/netbox/reports:z,ro
    - ./scripts:/etc/netbox/scripts:z,ro
    - netbox-media-files:/opt/netbox/netbox/media:z
  netbox-worker:
    <<: *netbox
    depends_on:
    - redis
    - postgres
    command:
    - /opt/netbox/venv/bin/python
    - /opt/netbox/netbox/manage.py
    - rqworker
  netbox-housekeeping:
    <<: *netbox
    depends_on:
    - redis
    - postgres
    command:
    - /opt/netbox/housekeeping.sh

  # postgres
  postgres:
    image: postgres:14-alpine
    env_file: env/postgres.env
    volumes:
    - netbox-postgres-data:/var/lib/postgresql/data

  # redis
  redis:
    image: redis:7-alpine
    command:
    - sh
    - -c # this is to evaluate the $REDIS_PASSWORD from the env
    - redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
    env_file: env/redis.env
    volumes:
    - netbox-redis-data:/data
  redis-cache:
    image: redis:7-alpine
    command:
    - sh
    - -c # this is to evaluate the $REDIS_PASSWORD from the env
    - redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
    env_file: env/redis-cache.env

volumes:
  netbox-media-files:
    driver: local
  netbox-postgres-data:
    driver: local
  netbox-redis-data:
    driver: local

The volumes that start with ./ I can deal with. It's those 3 at the end I don't know about.