Docker可以挂载容器外部的目录,将数据放在容器之外,如:MySQL,jenkins等;
通常使用-v /home/jenkins/data:/var/jenkins_home
指定,这里是将容器外的目录/home/jenkins/data
挂载到容器的/var/jenkins_home
:
docker run --name jenkins --restart=always -d -v /home/jenkins/data:/var/jenkins_home jenkins
权限问题
当容器内部使用root运行时,一般不会出现问题,当容器内部使用特定的用户时,外部目录的owner必须与容器内部一致否则将出现不能访问问题。如运行jenkins时,由于容器内部使用的账户是jenkins,并且容器外的/home/jenkins/data
必须修改所有者为jenkins,容器外部并没有这个用户,所以可查看容器内部jenkins用户对应的uid,设置/home/jenkins/data
的owner为对应的uid即可;
# chown -R 1000 /home/jenkins/data
jenkins中默认的uid是1000
相关内容
· 数据备份策略