镜像下载

docker search svn
docker pull docker.io/garethflowers/svn-server
docker images

运行容器

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

进入容器容器进行配置

##进入容器内部
docker exec -it svn-server /bin/sh  
## 创建仓库  创建了一个为repository 的仓库
svnadmin create /var/opt/svn/repository
##进入仓库配置文件路径
cd /var/opt/svn/repository/conf

vi svnserve.conf 编辑资源库配置

docker-compose svn 设置仓库地址 docker安装svn_svn

 

 vi passwd 编辑密码文件,添加用户,保存

docker-compose svn 设置仓库地址 docker安装svn_svn_02

 

 vi authz 编辑权限相关配置

docker-compose svn 设置仓库地址 docker安装svn_svn_03

 

 

exit
docker restart svn-server
重启svn 客户端

电脑安装svn客户端,并且连接

    安装svn 客户端,url为:svn://ip地址/repository
    用户为user1 密码为123

⑤svn上传一个文件,并且删除svn容器,再安装看看数据是否丢失

    安装svn 客户端,url为:svn://ip地址/repository

用户为user1 密码为123

docker-compose svn 设置仓库地址 docker安装svn_docker_04

 

 删除容器
docker rm -f svn-server

docker-compose svn 设置仓库地址 docker安装svn_svn_05

重新按照上面的安装步骤,直接运行,无需再次修改配置文件。然后svn连接,发现文件还在,挂载成功!

总结:
1.docker 容器挂载不会删除宿主机数据
2.凡是涉及到存储数据相关的,比如mysql,svn等 都要进行数据挂载,不能放在容器里面,否则容器删除就找不回来了