天天看点

docker之win安装gitlab

以下是windows10安装Docker DeskTop的步骤(!!!特别注意,docker和虚拟机系统不能共存,消勾程序和功能里面->Hyper-V的后虚拟机内的系统才能正常启动,但消勾后docker又不能启动了)

安装说明

​​https://docs.docker.com/docker-for-windows/install​​

双击exe文件进行安装

消勾Automatically check for updates

配置镜像(在Docker Engine添加"registry-mirrors"项)

{

“registry-mirrors”: [],

“insecure-registries”: [],

“debug”: false,

“experimental”: false,

“features”: {

“buildkit”: true

},

“registry-mirrors”: [“https://hh246994.mirror.aliyuncs.com”]

}

注意:镜像加速地址为从阿里云而来:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,需要先注册账号(进去后左边有镜像中心->镜像加速器)

安装gitlab-ce(会从阿里云的mirror地址下载gitlab-ce(社区版,免费,稳定))

docker pull gitlab/gitlab-ce

docker images查看一下

可以看到只有一个gitlab/gitlab-ce的镜像

运行Docker

[有问题语句!!,作为警示用,该语句多了挂载data(有权限问题)和cache部分]

docker run --detach --hostname 192.168.56.1 --publish 4430:443 --publish 800:80 --publish 220:22 --name gitlab --restart unless-stopped --volume /d/system/docker/gitlab/config:/etc/gitlab --volume /d/system/docker/gitlab/logs:/var/log/gitlab --volume /d/system/docker/gitlab/data:/var/opt/gitlab --volume /d/system/docker/gitlab/cache:/opt/gitlab/embedded/cookbooks/cache --privileged=true gitlab/gitlab-ce:latest

正常的语句

docker run --detach --hostname 192.168.56.1 --publish 4430:443 --publish 800:80 --publish 220:22 --name gitlab --restart unless-stopped --volume /d/system/docker/gitlab/config:/etc/gitlab --volume /d/system/docker/gitlab/logs:/var/log/gitlab --privileged=true gitlab/gitlab-ce:latest

解释:

–detach->使得容器在后台运行

–publish->将右侧(443(容器内)映射到外部端口4430)…

–name->容器名(可以使用docker删除容器)

–restart->重启策略

no->默认策略,在容器退出时不重启容器

on-failure->在容器非正常退出时(退出状态为非0),才会重启容器

on-failure:3->在容器非正常退出时重启容器,最多重启3次

always->在容器退出时总是重启容器

unless-stopped->在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止的容器

–volume->创建数据卷并将容器内的(冒号右侧)地址挂载到外部地址(冒号左侧)

特别注意:举个例子–volume /d/icetest:/etc/gitlab,这句话是将容器内的/etc/gitlab地址和主机的d盘的icetest目录进行关联(挂载),在主机中创建文件,修改文件会同步添加或更新容器内的文件

–privileged->使得容器内的root拥有真正的root权限

gitlab/gitlab-ce->镜像名

运行时错误例子:

C:\workspaces\stable-2.5.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\Mounting\FileSharing.cs:

该错误需要先在Docker DeskTop的Settings中的resources中设置File Sharing添加一个目录:/d/system/docker/gitlab,再次运行run命令即可

Failed asserting that mode permissions on “/var/opt/gitlab/.ssh” is 0700

该错误是因为将/var/opt/gitlab挂载到主机的data目录,导致没权限,目前官方不知道是bug还是什么原因,设置了任何权限都没有效果,最终还是放弃挂载这个数据目录到主机解决了这个问题

参考bug说明:https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/3957

使用docker ps查看状态(docker ps -a结合docker rm 容器ID可删除容器然后再重新启动),最后出现 (healthy)表示启动好了,可以用ip+800访问首页

若要停止并删除这个容器可以使用docker stop 容器ID && docker rm 容器ID

访问后默认用户名是root

dockerd的守护进程命令