镜像下载
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 编辑资源库配置
vi passwd 编辑密码文件,添加用户,保存
vi authz 编辑权限相关配置
exit docker restart svn-server 重启svn 客户端
电脑安装svn客户端,并且连接
安装svn 客户端,url为:svn://ip地址/repository
用户为user1 密码为123
⑤svn上传一个文件,并且删除svn容器,再安装看看数据是否丢失
安装svn 客户端,url为:svn://ip地址/repository
用户为user1 密码为123
删除容器
docker rm -f svn-server
重新按照上面的安装步骤,直接运行,无需再次修改配置文件。然后svn连接,发现文件还在,挂载成功!
总结:
1.docker 容器挂载不会删除宿主机数据
2.凡是涉及到存储数据相关的,比如mysql,svn等 都要进行数据挂载,不能放在容器里面,否则容器删除就找不回来了