step1 拉取鏡像
# gitlab-ce是免費(fèi)版還有付費(fèi)版gitlab-ee, 這里使用ce版本
# github地址: https://hub.docker.com/r/gitlab/gitlab-ce
docker pull gitlab/gitlab-ce:latest
step2 創(chuàng)建文件夾存儲日志擎宝,配置和數(shù)據(jù)
# 這里
mkdir -p /tmp/gitlab
cd /tmp/gitlab
mkdir logs
mkdir config
mkdir data
# logs 存儲日志
# config 存儲配置
# data 存儲數(shù)據(jù)
# 修改文件夾權(quán)限, 不然gitlab容器無法寫入
sudo chown -R root:staff logs
sudo chown -R root:staff config
sudo chown -R root:staff data
# 注意有些時(shí)候會出現(xiàn)容器不停重啟的情況,
# 這是由于映射文件夾權(quán)限的問題
step3 啟動docker
sudo docker run --detach \
--name "gitlab" \
--hostname "172.16.23.130" \
--publish 172.16.23.130:9443:443 \
--publish 172.16.23.130:9080:80 \
--publish 172.16.23.130:9022:22 \
--volume /tmp/gitlab/logs:/var/log/gitlab \
--volume /tmp/gitlab/config:/etc/gitlab \
--volume /tmp/gitlab/data:/var/opt/gitlab \
--restart always \
-d gitlab/gitlab-ce:latest
# --name 容器名稱 自定義
# --hostname 宿主機(jī)地址
# 443, 80, 22 分別是容器的https地址压储,http地址磷雇,ssh地址
# 分別映射到宿主機(jī)的9443德玫,9080, 9022
# 使用docker ps|grep gitlab查看狀態(tài), 大約需要4分鐘
# Up 2 minutes (health: starting) ---> Up 4 minutes (health)
step4 配置ssh和http
sudo vim /tmp/gitlab/config/gitlab.rb
# 設(shè)置
gitlab_rails['gitlab_shell_ssh_port'] = 9022
external_url 'http://172.16.23.130:9080' # 這會把內(nèi)部的80port變?yōu)?080
wq! # 保存
# 停止當(dāng)前容器
docker stop $(docker ps -a | grep gitlab | awk '{print $1}')
# 刪除當(dāng)前容器
docker rm $(docker ps -a | grep gitlab | awk '{print $1}')
step5 從新啟動容器
# 注意 這里映射變?yōu)?080:9080
sudo docker run --detach \
--name "gitlab" \
--hostname "172.16.23.130" \
--publish 172.16.23.130:9443:443 \
--publish 172.16.23.130:9080:9080 \
--publish 172.16.23.130:9022:22 \
--volume /tmp/gitlab/logs:/var/log/gitlab \
--volume /tmp/gitlab/config:/etc/gitlab \
--volume /tmp/gitlab/data:/var/opt/gitlab \
--restart always \
-d gitlab/gitlab-ce:latest
step6 登錄gitlab
在瀏覽器輸入:
http://172.16.23.130:9080/
首次登陸會讓你設(shè)置初始密碼
默認(rèn)賬戶名為 root
注意事項(xiàng):
1. 首次運(yùn)行容器時(shí)候可能會出現(xiàn) 不停重啟的情況辕坝,這是由于映射文件夾權(quán)限的問題誊册,無法寫入
2. 將ssh秘鑰加入后领突,git clone http 會讓你輸入以密碼,之后就免密了
3. 其他人員注冊后需要root管理員同意