一、概述

常用命令参考:(为了方便复制命令都做了换行处理,可直接双击复制。)
进docker terminal:
docker exec -it gitlab /bin/bash 查看容器列表:
docker ps -a 查看镜像列表:
docker images gitlab备份:
/opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1 gitlab备份目录:
vi /etc/gitlab/gitlab.rb简述:在Windows环境下,实现Linux相关服务的使用,例:gitlab、Ubuntu。

当前环境Windows10专业版(操作系统内部版本19044.2604)

步骤:
1、WSL2安装:Windows Subsystem for Linux,顾名思义Windows中的Linux子系统。
2、docker安装:docker容器,关键词:轻量、标准、隔离。
3、gitlab安装:代码管理仓库、工具。
4、Ubuntu安装:Linux操作系统

附:
gitlab设置密码、设置中文
Windows terminal工具
docker数据存储位置变更
docker数据备份
gitlab数据备份

tips:power shell和cmd都可以用,Windows terminal也可以,出现奇怪问题就换工具试试,具体自测。
tips:敲完命令别着急下一步,看看有没有cannot等问题报错在进行下一步。

1、WSL2.0

1.启用适用于 Linux 的 Windows 子系统:

管理员方式运行PowerShell 工具
	输入以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart注:也可以通过控制面板启用该项服务

2.WSL2运行要求:

Windows10 64 1903或更高版本,采用内部版本18362或更高版本
	具体自测吧,没研究
	tips:Windows版本查看方法:win+R  输入   winver

3.虚拟机功能:

powershell运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

4.重启电脑

5.下载

x64 WSL2 Linux 内核更新包

6.将WSL 2 设置为默认版本

powershell运行:
wsl --set-default-version 2

2、docker desktop

注:建议配置4核8g以上
cpu虚拟化支持开启:进主板bios查看,各电脑场主板进入方法不一样,常用进入键:f2 f8 f12 esc del键,部分笔记本需要按住fn键,个别电脑有锁需先解锁才能进入bios。

1.下载:

docker for Windows 下载后安装,装完点close

2.power shell:

查看docker版本命令:
docker version

3.power shell

查看docker状态命令:
wsl --list -v

3、gitlab安装

1.镜像拉取:

docker pull gitlab/gitlab-ce

2.power shell查看image镜像信息命令:

docker image ldocker image inspect gitlab/gitlab-ce

docker gitlab 管理员账号 windows docker gitlab_ubuntu


docker gitlab 管理员账号 windows docker gitlab_docker gitlab 管理员账号_02

3.进入gitlab docker的linux terminal命令

docker exec -it gitlab /bin/bash

docker gitlab 管理员账号 windows docker gitlab_gitlab_03


exti退出

进入后就可以使用需要的命令:

查看gitlab版本号

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

docker gitlab 管理员账号 windows docker gitlab_ubuntu_04

4.准备数据卷

wsl2 docker有volume和bind mount两种管理数据目录的方式。
volume实际保存在docker-desktop-data中。
GitLab主要有三个重要的数据分别是data、config、log,所以创建三个数据卷,后面GitLab服务都是挂在在这几个目录下面。

创建命令:
docker volume create gitlab-data-voldocker volume create gitlab-log-voldocker volume create gitlab-config-vol

5.gitlab镜像安装:

安装具体的gitlab镜像到上面创建的volume下

docker run --detach `
  --publish 443:443 --publish 80:80 --publish 22:22 `
  --name gitlab `
  --restart always `
  --volume gitlab-config-vol:/etc/gitlab `
  --volume gitlab-log-vol:/var/log/gitlab `
  --volume gitlab-data-vol:/var/opt/gitlab `
  gitlab/gitlab-ce

如果代码放不开需要分行执行,需要加续行符:powershell是`, cmd窗口是^, linux是\

power shell查看安装的镜像命令:
docker -ps -a

cmd命令:
查看本机IP:ipconfig,找到ipv4地址。局域网内可访问。
**至此内网安装已经完成,访问127.0.0.1可进入gitlab
需要配置域名

附:

1.gitlab设置密码:

root用户的密码放在一个临时文件里:24小时后该文件会删除。

在etc/gitlab目录下有一个initial_root_password文件

cd etc/gitlab/ vi initial_root_password

docker gitlab 管理员账号 windows docker gitlab_docker_05

2.设置中文:

  1. 1.右上角偏好设置

docker gitlab 管理员账号 windows docker gitlab_docker_06

  1. 2.下滑找到language

docker gitlab 管理员账号 windows docker gitlab_docker_07

3.Windows terminal工具

进Windows商店:

docker gitlab 管理员账号 windows docker gitlab_docker gitlab 管理员账号_08

4.docker数据存储位置变更:

1.查看已安装linux系统:
wsl --list -v2.备份数据:
mkdir dockerbackupcd .\dockerbackup\wsl --export docker-desktop ./docker-desktop.tarwsl --export docker-desktop-data ./docker-desktop-data.tar

3.注销分发:
wsl --unregister docker-desktopwsl --unregister docker-desktop-data4.创建新目录:
mkdir \wslDistros\docker-desktopmkdir \wslDistros\docker-desktop-data5.重新导入分发:(注意修改盘符!)
wsl --import docker-desktop E :\wslDistros\docker-desktop ./docker-desktop.tarwsl --import docker-desktop-data E:\wslDistros\docker-desktop-data ./docker-desktop-data.tar 命令格式:wsl --import <安装位置> <tar文件名>
6.重启。

5.docker数据备份

1.查看容器列表:

docker ps -a

docker gitlab 管理员账号 windows docker gitlab_docker gitlab 管理员账号_09

2.创建快照:(注意修改参数)

`docker commit -p (container id) (container-backup-1)`

3.查看镜像列表:(创建快照成功后会显示)

docker images

docker gitlab 管理员账号 windows docker gitlab_git_10

4.保存为tar:(注意修改自己要存储的路径和name)

docker save -o (~/container-backup-1.tar) container-backup

5.备份恢复:(注意修改tar包路径)

docker load -i (~/container-backup-1.tar)

6.查看镜像:

docker images

docker gitlab 管理员账号 windows docker gitlab_git_10

7.运行备份的镜像:(注意修改自己的镜像)

docker run -d -p 80:80 (container-backup-1)

6.gitlab数据备份

1.备份命令:

gitlab-rake gitlab:backup:create

备份完后会在/var/opt/gitlab/backups目录生成tar文件

cd /var/opt/gitlab/backups

docker gitlab 管理员账号 windows docker gitlab_docker_12

2.备份过期时间设置

vi /etc/gitlab/gitlab.rb 修改时间:单位为秒,一天是86400秒。

gitlab_rails['backup_keep_time'] = 604800

改完重载配置文件
gitlab-ctl reconfigure

3.备份目录修改

vi /etc/gitlab/gitlab.rb 修改路径

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

改完重载配置文件
gitlab-ctl reconfigure

4.备份恢复:
1. 修改权限(注意修改tar包名)

chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar 2. 停止服务
gitlab-ctl stop unicorngitlab-ctl stop sidekiq3. 恢复备份(编号在包名上:1502357536_2017_08_10_9.4.3)
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号 会有两次交互提示,输入yes继续
4. 启动
sudo gitlab-ctl start

5.自动备份:

m h dom mon dow user command m: 表示分钟,可以是从0到59之间的任何整数。
h:表示小时,可以是从0到23之间的任何整数。
dom:表示日期,可以是从1到31之间的任何整数。
mon:表示月份,可以是从1到12之间的任何整数。
dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
user : 表示执行的用户。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

//编辑crontab文件
vi /etc/crontab //添加定时任务
0 2 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1