在Docker下運行GitLab的注意事項

因爲Docker技術的快速發展,不少著名的開源應用都提供了Docker版本,但因爲某些緣由,一些知名應用提供的Docker運行語句存在必定的問題。
今天就遇到了Docker下運行Gitlab的巨坑。
Docker官方的頁面原文是這樣的:git

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

這個坑的點在 --publish 22:22 這裏。這個命令參數的意思是把主機的22端口映射到 gitlab 鏡像的22 端口以提供SSH服務,但宿主機自己也須要22端口提供SSH服務。
我開始運行的時候沒有注意到這一點,運行以上命令的時候提示22端口不可用,因而直接把22改爲了33,因而鏡像順利運行了。可是在gitlab帳戶設置中添加公鑰之後,使用git客戶端經過ssh協議(git@xxxx.git)拉取代碼的時候始終提示輸入密碼,輸入密碼又提示沒權限,折騰了好久,重啓了無數次鏡像,終於發現問題所在。docker

修改宿主機sshd端口爲88,使用firewall-cmd --zone=public --add-port=88/tcp --permanent 新增端口,而後systemctl restart sshd ,而後清空客戶端上的known_hosts,從新clone,順利成功。ssh

相關文章
相關標籤/搜索