Чтобы переиспользовать том, созданный в Docker Compose, в Nomad, нужно выполнить следующие шаги:
1. Определите том в Docker Compose файле:
version: '3' services: myservice: image: myimage volumes: - mydata:/data volumes: mydata:
2. Экспортируйте том из Docker Compose с помощью команды docker-compose
:
$ docker-compose run --rm myservice echo "Exporting data" $ docker run --rm --volumes-from $(docker-compose ps -q myservice) -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
3. Загрузите созданный архив в Nomad с помощью команды nomad
:
$ nomad job run - <<EOF job "myservice" { datacenters = ["dc1"] group "myservice" { task "myservice" { driver = "docker" config { image = "myimage" volumes = [ "/data:/data" ] } artifact { source = "/path/to/backup.tar" destination = "local/backup.tar" } } } } EOF
4. Восстановите данные в контейнере Nomad:
$ nomad job run - <<EOF job "myservice" { datacenters = ["dc1"] group "myservice" { task "myservice" { driver = "docker" config { image = "myimage" volumes = [ "/data:/data" ] } lifecycle { poststart { fail { metadata = { "restore" = "/bin/tar xf /backup/backup.tar -C /data" } } } } } } } EOF
Теперь у вас есть возможность переиспользовать том из Docker Compose в Nomad. Выполняя команду nomad job run
, вы загружаете архив backup.tar
, созданный в Docker Compose, и восстанавливаете данные в контейнере Nomad.