首页 > 技术文章 > 服务器崩掉 ,只剩下挂载文件,重现github docker 容器

xiatc 2021-08-10 16:37 原文

1.挂载文件

data :数据库等文件(项目所在文件)

log:日志文件

etc:配置文件

2. 查看原始镜像版本

 

 

12.1.1为版本

3.拉取进行

docker pull  gitlab/gitlab-ce:12.1.1-ce.0

4.创建容器 

docker run --detach --publish 8443:443 --publish 8080:80 --name gitlab --restart=always -v /home/czc/gitlab/etc/:/etc/gitlab -v /home/czc/gitlab/log/:/var/log/gitlab -v /home/czc/gitlab/data/:/var/opt/gitlab gitlab/gitlab-ce:12.1.1-ce.0

注:有时端口号被占用  访问不到  可在容器里面执行gitlab-ctl reconfigure

 

5.更改配置文件 

etc/gitlab.rb  更改成挂载机的ip  

 

clone地址:clone with http  有时ip和端口是一串乱码  需要在gitlab.rb中 external_url  设置ip和端口  如:10.0.0.118:8080  此时容器创建的端口需要里外一致   8080:8080   不然原默认端口是80  将会访问不到

clone with ssh  gitlab_rails['gitlab_shell_ssh_port'] =新端口

 

data/gitlab-rails/etc/gitlab.yml

打开etc 需要切换成root 用户  sudo -s     配置http的ip和端口

 

 6.docker restart gitlab   此时可以打开gitlab页面了  但是数据库还没有回复

7.回复数据

data/backups/   文件复制到新建的挂载目录下  data/git-data/repositories 复制到新建的文件夹下面

docker exec -it gitlab /bin/bash  进入容器

8.关掉服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

查看服务 确认是否关闭 :gitlab-ctl status

9.关联数据 

gitlab-rake gitlab:backup:restore BACKUP=1608951799_2020_12_26_12.1.1

10.由于数据库报错 说是字符集不匹配  he database was initialized with LC_COLLATE "en_US.UTF-8", which is not rec

安装字符集

apt-get update

apt-get install language-pack-zh-hans

localedef -f UTF-8 -i en_US en_US.UTF-8  

查看字符集的命令 locale -a 和locale 

11 exit 重启 docker restart gitlab  发现日志中没有权限  

docker exec -it gitlab update-permissions

docker restart gitlab

12 完事 恢复完成

 

推荐阅读