Docker的镜像是只读的,但是容器是可写的,我们可以将数据写入到容器,不过一旦容器删除数据将会丢失,那么有什么办法能将数据进行持久化存储呢?
一、Data Volume
在执行docker run 时,通过-v参数将主机目录作为容器的数据卷,这就是基于本地文件系统Volumn管理。
1、Volume类型
- 受管理的Volume,由docker后台自动创建
- 绑定挂载的Volume,具体挂载位置由用户指定
2、docker后台自动创建
以mysql镜像为例说明,进入到https://hub.docker.com/_/mysql查看详情。
- 启动docker服务
[root@docker-node1 ~]# systemctl start docker
- 拉取mysql镜像
[root@docker-node1 ~]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 619014d83c02: Pulling fs layer 9ced578c3a5f: Pulling fs layer
注意:如果出现Get https://registry-1.docker.io/v2/library/mysql/manifests/latest: dial tcp: lookup registry-1.docker.io on 8.8.8.8:53: read udp 192.168.0.109:41429->8.8.8.8:53: i/o timeout这种问题,可以尝试修改/etc/resolv.conf文件,加入nameserver 8.8.4.4
[root@docker-node1 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8 nameserver 8.8.4.4