1、镜像下载
查找镜像
docker search svn
拉取镜像
docker pull docker.io/garethflowers/svn-server
查看镜像
docker images
2、运行容器
docker run -v /opt/data/svn/repo:/var/opt/svn --name svn-server -p 3690:3690 --privileged=true -e SVN_REPONAME=repository -d docker.io/garethflowers/svn-server
参数说明:
-name: 重命名
-e:传递key-value形式的环境变量,这里指定仓库名为 repository
-v /opt/data/svn/repo:/var/opt/svn 将容器/var/opt/svn 目录下的内容,挂载到宿主机/opt/data/svn/repo 下,且删除容器不会删除宿主机内容
-d:后台运行,守护线程
--privileged=true 指定容器是否为特权容器,特权容器拥有所有的capabilities
3、容器配置
进入容器内部
docker exec -it svn-server /bin/sh
创建仓库 创建了一个为repository 的仓库
svnadmin create /var/opt/svn/repository
进入仓库配置文件路径
cd /var/opt/svn/repository/conf
vi svnserve.conf
编辑资源库配置
编辑密码文件,添加用户,保存
vi passwd
编辑权限相关配置
vi authz
退出容器
exit
4、重启容器
重启SVN
svn docker restart svn-server
5、客户端连接
电脑安装svn客户端,并且连接
安装svn 客户端,url为:svn://ip地址/repository 用户为user1 密码为123
svn上传一个文件,并且删除svn容器,再安装看看数据是否丢失
6、删除容器
docker rm -f svn-server
重新按照上面的安装步骤,直接运行,无需再次修改配置文件。然后svn连接,发现文件还在,挂载成功!
总结:
1.docker 容器挂载不会删除宿主机数据。
2.凡是涉及到存储数据相关的,比如mysql,svn等 都要进行数据挂载,不能放在容器里面,否则容器删除就找不回来了。