鏡像下載
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等 都要進行數據掛載,不能放在容器里面,否則容器刪除就找不回來了