下载镜像并且启动
//下载镜像(镜像较大,如果网速不行可以切换阿里云镜像仓库)
docker pull gitlab/gitlab-ce:latest
//启动镜像
docker run --name gitlab -d
-p 18080:80 -p 1443:443 -p 2222:22
-v /data/gitlab/config:/etc/gitlab
-v /data/gitlab/logs:/var/log/gitlab
-v /data/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce
-p为端口映射
-v为路径映射
-v /data/gitlab/config:/etc/gitlab 配置文件
-v /data/gitlab/logs:/var/log/gitlab日志文件
-v /data/gitlab/data:/var/opt/gitlab应用文件
配置gitlab并且ssh连接
过程中遇到两个问题
1.docker ps -a 中gitlab一直自动重启
查看docker logs -f gitlab
发现是权限error导致启动失败:Permission denied
解决方法:
系统gentos7.4
容器中没有执行权限 //挂载外部数据卷时,无法启动容器, 报 chown: cannot read directory '/var/lib/mysql/': Permission denied 由$ docker logs [name] 查看得知 该原因为centOs7默认开启selinux安全模块,需要临时关闭该安全模块,或者添加目录到白名单 临时关闭selinux:su -c "setenforce 0" 重新开启selinux:su -c "setenforce 1" 添加selinux规则,将要挂载的目录添加到白名单: 示例:chcon -Rt svirt_sandbox_file_t /data/gitlab(我启动挂载的路径)
2.ssh连接错误
我这里使用git配置config分别设置github和局域网gitlab
输入192.168.253.134:18080即可进入gitlab
同时使用github和gitlab
为gitlab单独生成一对秘钥ssh keyssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsavim ~/.ssh/config,输入下面的内容:Host github.com~/.ssh/id_rsa
Host 192.168.253.134HostName 192.168.253.134PORT 18080~/.ssh/gitlab-rsa
之后在gitlab setting/ssh中输入gitlab-rsa.pub里的内容即可
但是问题是我们改了gitlab的端口号22
同时还需要更改GitLab的配置文件中的 ssh端口,否则GitLab中为我们生成的项目连接地址会连接不上。/gitlab/config/gitlab.rb
gitlab_rails['gitlab_shell_ssh_port'] = 2222
这样,就可以使用ssh远程连接Gitlab
git init
git remote add origin ssh://git@192.168.253.133:2222/calvin/weimumu.git
git add .
git commit -m "frist" git push origin master