docker安装gitlab
1、拉取指定版本的gielab-ce
网站:https://hub.docker.com/r/gitlab/gitlab-ce/tags?page=3
docker pull gitlab/gitlab-ce:13.12.5-ce.0
2、 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /docker/gitlab/etc
mkdir -p /docker/gitlab/log
mkdir -p /docker/gitlab/data
3、运行容器
docker run
--detach
--publish 22:22
--publish 8090:8090
--publish 443:443
--hostname 127.0.0.1
-v /docker/gitlab/etc:/etc/gitlab
-v /docker/gitlab/log:/var/log/gitlab
-v /docker/gitlab/data:/var/opt/gitlab
--name gitlab
--restart always
--privileged=true gitlab/gitlab-ce:13.12.4-ce.0
docker run -d -p 8443:443 -p 9000:80 -p 8022:22 --restart always --name gitlab-ce -v /docker/gitlab/etc:/etc/gitlab -v /docker/gitlab/log:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab --privileged=true gitlab/gitlab-ce
参数说明:
--detach: 设置容器后台运行
--hostname: 设置容器的 hostname
--publish: 端口转发规则(80:Http 访问端口,443:Https 访问端口,8888:主机的 ssh 访问端口,22:Docker 容器中 ssh 访问端口)
--name:容器名称
--restart always:每次启动容器就重启GitLab
--v: 共享目录挂载,即 docker 容器内外数据共享(/srv/gitlab/data: 应用程序数据,/srv/gitlab/logs:GitLab 的 log,/srv/gitlab/config:GitLab 的配置文件)
--e:配置 Gitlab 运行的环境变量
查看root账号密码:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
遇到的问题:
1、容器名已被占用
docker: Error response from daemon: Conflict. The container name "/gitlab" is already in use by container "3c473e1d13d04f39a0d006a0b18c8c8a4eca06d3a26becffafe08dec336b135d". You have to remove (or rename) that container to be able to reuse that name.
解决方法:
(1)查看容器
docker pa -a
(2)停止容器
docker stop names
(3)移除容器
docker rm names
2、端口被占用
docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab (1e0bc10265dbb815b068304ab96fbd583c603f46cf8d733d2000a40661547952): Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use.
解决办法:
(1)查看端口
netstat -tanlp
(2) 杀死进程
kill 占用端口进程的PID
docker start gitlab #启动容器