https://docs.docker.com/docker-for-windows/install
{
“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,需要先注册账号(进去后左边有镜像中心->镜像加速器)
docker pull gitlab/gitlab-ce
可以看到只有一个gitlab/gitlab-ce的镜像
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 stop 容器ID && docker rm 容器ID
密码已进入页面就需要重新设置(我一般设置为8位通用密码)
https://docs.docker.com/engine/reference/commandline/dockerd