我在Windows pc上安装了一个docker桌面。这样,我就在一个Docker容器上自托管了gitlab。今天,我尝试通过键入以下命令来备份gitlab:
docker exec -t <my-container-name> gitlab-backup create
运行此命令后,备份成功,并看到一条消息,表明备份已完成。然后,我重新启动了Docker桌面,并在容器启动时等待容器启动,我访问了gitlab接口,但看到了一个新的gitlab实例。
然后我输入以下命令来恢复备份:
docker exec -it <my-container-name> gitlab-backup restore
但是看到的消息是:
在/ var / opt / gitlab / backups
中找不到备份请确保文件名以_gitlab_backup.tar
结尾原因是我在gitlab官方网站上看到了这些命令,所以我做错了这是什么原因。
我在docker-compose.yml文件中有此文件
version: "3.6"
services:
web:
image: 'gitlab/gitlab-ce'
container_name: 'gitlab'
restart: always
hostname: 'localhost'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://localhost:9090'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
networks:
- gitlab-network
ports:
- '80:80'
- '443:443'
- '9090:9090'
- '2224:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks:
gitlab-network:
name: gitlab-network
我使用此命令来运行容器:
docker-compose up --build --abort-on-container-exit
答案 0 :(得分:0)
如果您是使用Volumes启动容器的,请尝试查看C:\ProgramData\docker\volume
进行备份。
备份通常位于容器内的/var/opt/gitlab/backups
上。因此,希望您将/var/opt/gitlab
映射到卷或绑定安装。
答案 1 :(得分:0)
您是否尝试提供备份文件的名称(如omnibus安装)?在Docker中还原备份后,我基本上会使用omnibus指令,但是要使用docker exec来执行。这是我从笔记中使用的命令。
docker exec -it gitlab gitlab-ctl stop unicorn
docker exec -it gitlab gitlab-ctl stop sidekiq
docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=1541603057_2018_11_07_10.3.4
docker exec -it gitlab gitlab-ctl start
docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true
似乎他们在某个时候添加了gitlab-backup命令,因此您可以使用它代替gitlab-rake。