一、为什么要进行数据管理操作
- 方便查看容器内产生的数据
- 多容器之间的=实现数据共享
例如:需要给多个容器中的网站站点上传网页内容时,可以高效的部署网页。
二、两种管理方式
1.数据卷
- 数据卷是容器与宿主之间的数据共享
2.数据卷容器
- 数据卷容器是容器和容器之间的数据共享
三、数据管理操作实例
1.数据卷操作实例
1.将宿主机目录中的/var/www挂载到容器中的/data1中(如果目录不存在都会自动创建)
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash
2.在容器中/data1目录下创建文件进行测试
cd /data1/
touch 123.txt
3.回到宿主机/var/www查看
[root@node1 ~]# cd /var/www/
[root@node1 www]# ls
123.txt
2.数据卷容器操作实例
1.创建数据卷容器web10
docker run --name web10 -v /data1 -v /data2 -it centos:7 /bin/bash
2.新容器web100挂载数据卷容器web10
docker run -it --volumes-from web10 --name web100 centos:7 /bin/bash
(web100容器会自动关联web10容器中的数据卷)
3.在新容器web100的/data1中创建文件进行测试
[root@2ad42960c2aa data1]# cd /data1/
[root@2ad42960c2aa data1]# ls
[root@2ad42960c2aa data1]# touch 1.txt
4.回到数据卷容器web10的/data1中查看
[root@b10f5d5ae9d5 /]# cd data1/
[root@b10f5d5ae9d5 data1]# ls
1.txt
四、私有仓库建立步骤
1.下载registry镜像
docker pull registry
2.在docker引擎终端设置
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.52.10:5000"] //添加此项
"registry-mirrors":["https://4pg53plw.mirror.aliyuncs.com"]
}
systemctl restart docker.service
docker create -it registry /bin/bash
3.宿主机的/data/registry自动创建挂载容器中的/tmp/registry
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
4.更改标记
docker tag nginx:latest 192.168.52.10:5000/nginx
5.上传镜像
docker push 192.168.52.10:5000/nginx
6.获取私有仓库列表,查看是否上传成功
curl -XGET http://192.168.52.10:5000/v2/_catalog
{"repositories":["nginx"]} //显示上传成功
7.测试私有仓库下载
docker pull 192.168.52.10:5000/nginx
8.##–privileged 让容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
[root@localhost systemctl]# docker run --privileged -it -v /sys/fs/cgroup:/sys/fs/cgroup:ro