Docker 数据卷

Docker 数据卷 volume

需求:容器删除后,容器内的数据丢失,如mysql容器废了,那库都没了

数据的持久化,宿主机和容器同步数据,

# 命令:docker run -v /HOST/DIR:/CONTAINER/DIR
docker run -v /home/data:/data

实战MySQL

# 命令:
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

具名和匿名挂载

# 匿名挂载 
-v 容器内路径 # 不写HOST的路径地址
# 具名挂载
-v 卷名:容器内路径 
# 指定路径挂载
-v 宿主机路径:容器路径
docker volume ls #  版本低的还没有这个命令
 "Volumes": {
        "/etc/nginx": "/var/lib/docker/volumes/73bc9f5eb56cb82373b5ec5eede3febc3ed344ed4b7b4fd674d6abc8a3a27563/_data"
    }

拓展

# 通过 -v 容器路径:rw | ro
# read only ro 只读
# read write rw 读写

# 一旦设置了容器权限,容器对我们挂载出来的内容就被设定的权限
# ro 就是只能通过宿主机改,容器没有权限

初识Dockerfile

Dockerfile 就是用来构建镜像的文件,一个命令脚本, 通过这个脚本可生产镜像,每一个命令都是一层

方式二:在构建镜像的时候,指定卷目录,匿名挂载

FROM centos
VOLUME ["volume01", "volume02"]
CMD echo "----END---"
CMD /bin/bash

数据卷容器

多个msyql 数据如何同步

# --volume-from 

# 只要有一个容器使用文件,那么文件就一直存在,双向拷贝
# 容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止

posted @ 2020-10-18 01:38  pigeast  阅读(70)  评论(0编辑  收藏  举报