一、使用Docker搭建SVN-server提供SVN服务
Gitlab太占用内存了,而我个人其实只需要其代码存储管理功能,为了这个功能搭建个git吃掉了我这买的云服务器的一半的内存,真的太不值,我还是找其它的替代方案吧,现在有很多的云代码存储方案,不过我还是希望代码自己管理。继续使用SVN吧。找了一下镜像包,有一个garethflowers/svn-server 镜像,不超过10M真是小巧。
#下载最新镜像
docker pull garethflowers/svn-server:latest
#运行SVN容器
docker run \
--name svn_server \
--detach \
--volume /opt/svn_server:/var/opt/svn \
--publish 3690:3690 \
garethflowers/svn-server
#创建SVN仓库
docker exec -it svn_server svnadmin create kermit-repo
创建仓库之后修改仓库下的svn_authz,svn_passwd账号之类的数据等设置账号,和在裸机下的其它配置就一样了。
二、关于docker-swarm安装图形化的界面
之前的文章:
Docker容器中获取服务器Mac地址-Python获取服务器Mac地址、Docker Swarm容器编排工具使用体验、以及Docker容器中yum安装_docker容器读取mac地址是什么-CSDN博客文章浏览阅读600次。在docker容器中是无法直接获取宿主服务器中的Mac地址的,容器中使用命令或者程序中所获取的mac地址是容器内部的临时Mac地址,但这样Mac地址会在进行一操作比如服务器重启、容器重新构建的时候会发生变化,只在restart容器的时候不会变,这就不符合我们取mac地址的用途(取mac就是希望得到一个不变的硬件服务器相关的参数值)。要想获取宿主服务器的Mac地址,需要在启动docker容器的时候通过启动命令传入mac地址。如下在启动容器的命令中添加进环境变量的命令选项。_docker容器读取mac地址是什么https://linge.blog.csdn.net/article/details/137488518 体验了一下 docker-swarm 还有一些图形化的工具界面,不过感受了一下,实在觉得没有什么多大意义,图形界面也就是能查看一下有哪些节点和基础信息,而这些使用一个命令docker node ls就行了。
# 拉取镜像并运行图形化界面
docker pull dockersamples/visualizer:latest
docker run -itd --name visualizer -p 8081:8080 -e HOST=192.168.162.11 -e PORT=8080 -v /var/run/docker.sock:/var/run/docker.sock
dockersamples/visualizer:latest
# 192.168.162.11为docker-swarm中manager的ip地址
docker service create \
--name=viz \
--publish=8080:8080/tcp \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
dockersamples/visualizer
三、docker镜像中pip安装报(WARNING: Retrying (Retry(total=4, connect=None, read=None, …)
使用Dockerfile构建镜像,但在执行pip命令的时候出现了WARNING: Retrying (Retry(total=4, connect=None,之类的报错,于是我在下载的镜像上启动了一个容器进入容器开始操作pip,包括更新pip以及安装一些第三方扩展,但在docker镜像中安装python扩展时提示Could not find a version that satisfies the requirement requests==2.24.0,所有的扩展都这样,当前的pip版本用的是(20.3.3),而在进行更新pip的版本时一直提示错误 :
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPConnection object at 0x7f7875126f40>: Failed to establish a new connection: [Errno -3] Temporary
之前从未遇到过这种情况,而这是刚下载的镜像出的错误,看到一些解决方法说是pip源的问题,通过-i设置一些国内的pip源,常用的可以使用阿里云源: Simple Index 使用方式:
pip install 包名 -i http://mirrors.aliyun.com/simple/ --trusted-host mirrors.aliyun.com 。使用的时候需要加上--trusted-host mirrors.aliyun.com表示对这个host的信任,不然会报提示:WARNING: The repository located at mirrors.aliyun.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host mirrors.aliyun.com'.但依然没有得到解决,最后找到问题点是docker的DNS配置问题。编辑/etc/docker/daemon.json 没有该文件则创建, 添加如下内容:
#使用如下配置
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"dns": ["114.114.114.114", "8.8.8.8"]
}
#或者使用如下配置添加镜像源
{
"registry-mirrors": [
"https://xxxx.mirror.aliyuncs.com",
"https://registry.docker-cn.com"
],
"dns":[
"114.114.114.114",
"8.8.8.8"
]
}
然后重启docker才成功了。
service docker restart