天涯海角异孤星
问题原因及解决办法
原因是CentOS7中的安全模块SELinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数。使用该参数,容器内的root拥有真正的root权限。否则,容器内的root只是外部的一个普通用户权限
$ docker run --name study_mysql --privileged=true -p 3306:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
2.临时关闭SELinux:
setenforce 0
3.添加SELinux规则,改变要挂载的目录的安全性文本
可参考:http://www.bubuko.com/infodetail-2075102.html
前一篇我们介绍了《Docker 私有仓库搭建》,但是搭建完的私有仓库没有 UI 管理界面,操作很不方便。我们可以借助第三方 registry-web 镜像来实现界面化管理,目前比较流行的镜像包是 hyper/docker-registry-web。
通过两条 docker run 指令快速搭建:
docker run -d -p 5000:5000 --name registry-srv registry:2
docker run -it -p 8080:8080 --name registry-web --link registry-srv -e REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web
我们将私有仓库的容器命名为 registry-srv,将 WebUI 管理容器命名为 registry-web,第2条指令的 --link 参数让 registry-srv 和 registry-web 做连接,这样我们在 registry-web 内部就可以通过 registry-srv:5000 地址来访问私有仓库了。