2017-05-28 66 views
0

對不起,我的無知。我有docker-compose在Docker上運行的db數據如下。如何將數據庫恢復到influxdb容器

influxdb: 
    image: influxdb:alpine 
    ports: 
     - 8086:8086 
    volumes: 
     - ./influxdb/config/influxdb.conf:/etc/influxdb/influxdb.conf:ro 
     - ./influxdb/data:/var/lib/influxdb 

我需要將數據庫的備份從遠程服務器恢復到此Influxdb容器。我已經從遠程服務器採取了以下備份。

influxd backup -database tech_db /tmp/tech_db 

我閱讀文檔,無法找到一個方法來恢復DB到泊塢窗container.Can誰能給我一個指針,如何做到這一點。

回答

1

我也有同樣的問題。看起來這是不可能的,因爲你無法殺死容器中的流入進程。

# Restoring a backup requires that influxd is stopped (note that stopping the process kills the container). 
docker stop "$CONTAINER_ID" 

# Run the restore command in an ephemeral container. 
# This affects the previously mounted volume mapped to /var/lib/influxdb. 
docker run --rm \ 
--entrypoint /bin/bash \ 
-v "$INFLUXDIR":/var/lib/influxdb \ 
-v "$BACKUPDIR":/backups \ 
influxdb:1.3 \ 
-c "influxd restore -metadir /var/lib/influxdb/meta -datadir /var/lib/influxdb/data -database foo /backups/foo.backup" 

# Start the container just like before, and get the new container ID. 
CONTAINER_ID=$(docker run --rm \ 
--detach \ 
-v "$INFLUXDIR":/var/lib/influxdb \ 
-v "$BACKUPDIR":/backups \ 
-p 8086 \ 
influxdb:1.3 
) 

更多信息here