1、docker搭建git服务器
总体思路:服务端通过docker搭建git服务器,客户端创建git的账户及公钥密钥;
1)服务端
# 创建容器
# --privileged 获得完整的root权限
# /usr/sbin/init 启动容器执行的第一个命令 以便可以使用systemctl命令
# 将容器的ssh服务22端口映射到宿主的65002端口
docker run -itd --privileged=true --name mygitenv -p 65002:22 centos /usr/sbin/init
注意需要加上--priviledged的设置,将你的CMD或者entrypoint设置为/usr/sbin/init即可,这样可以会自动将dbus等服务启动起来,就可以使用后面systemctl 命令。
# 在容器里安装软件
yum install openssh-server git passwd -y
# 将ssh服务开启 并设置开机启动
systemctl start sshd
systemctl enable sshd
# 创建git用户
useradd git
passwd git
# 在git用户家目录下建立git仓库目录
su git
mkdir -p /home/git/test.git
git init --bare /home/git/test.git
# 修改配置文件,允许提交到master分支
vi /home/git/test.git/config
# 添加如下代码:
[receive]
denyCurrentBranch = ignore
2)客户端
git config --global user.name "cyjmmy"
git config --global user.email cyjmmy@foxmail.com
# 在客户端执行如下命令,生成ssh密钥
ssh-keygen -t rsa -C "cyjmmy@foxmail.com"
# 将id_rsa.pub上传到服务器,id_rsa私钥自己保留
服务器端保存公钥;
cd /home/git/
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys
# 访问git仓库
git clone ssh://git@192.168.56.2:65002/home/git/test.git
如果是服务端和客户端都是在本地,上述ip可以在本地打印hostname -i ,可查看本地ip;
另外也可以telnet ip port,验证服务是否通;
参考资料
https://blog.csdn.net/qq_34631220/article/details/121852890