zoukankan      html  css  js  c++  java
  • Docker 数据卷

    容器与数据耦合的问题

    • 不便于修改:当我们要修改Nginx的html内容时,需要进入容器内部修改,很不方便。
    • 数据不可复用:在容器内的修改对外是不可见的。所有修改对新创建的容器是不可复用的。
    • 升级维护困难:数据在容器内,如果要升级容器必然删除旧容器,所有数据都跟着删除了

    数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

    操作数据卷

    基本语法如下:

    docker volume [COMMAND]

    docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

    • create 创建一个volume
    • inspect 显示一个或多个volume的信息
    • ls 列出所有的volume
    • prune 删除未使用的volume
    • rm 删除一个或多个指定的volume

    创建一个数据卷,并查看数据卷在宿主机的目录位置

    创建数据卷

    docker volume create html

    查看所有数据卷

    docker volume ls

    查看数据卷详细信息卷

    docker volume inspect html

    挂载点

    数据卷的作用:

    将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

    数据卷操作:

    • docker volume create 创建数据卷
    • docker volume ls  查看所有数据卷
    • docker volume inspect  查看指定数据卷的详细信息
    • docker volume rm  删除指定数据卷
    • docker volume prune  移除所有未使用的数据卷

    挂载数据卷

    创建容器时,可以通过 -v 参数来挂载一个数据卷到容器内某个目录

    docker run \                # docker run :就是创建并运行容器
      --name mn \               # --name mn :给容器起个名字叫mn
      -v html:/root/html \      # -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
      -p 8080:80                # -p 8080:80 :把宿主机的8080端口映射到容器内的80端口
      nginx                     # nginx :镜像名称

    创建一个nginx容器,修改容器内的html目录内的index.html内容

    创建容器时,挂载数据卷(如果宿主机文件系统中不存在volume数据卷,会自动被创建)

    docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx

     

    查看html数据卷的位置

    docker volume inspect html

    进入该目录,修改文件

    # 进入该目录
    cd /var/lib/docker/volumes/html/_data
    # 修改文件
    vi index.html

    创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

    目录挂载与数据卷挂载的语法是类似的:

    -v [宿主机目录]:[容器内目录]
    -v [宿主机文件]:[容器内文件]

    在将本地mysql.tar文件上传到虚拟机,通过load命令加载为镜像

    创建目录/tmp/mysql/data

    mkdir -p /tmp/mysql/dat #多级目录创建

    创建目录/tmp/mysql/conf

    mkdir -p /tmp/mysql/conf #多级目录创建

    hmy.cnf文件上传到/tmp/mysql/conf

    去DockerHub查阅资料,创建并运行MySQL容器,要求:

    挂载/tmp/mysql/data到mysql容器内数据存储目录

    挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件

    docker run \
     --name mysql \
     -e MYSQL_ROOT_PASSWORD=root \
     -p 3306:3306 \
     -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
     -v /tmp/mysql/data:/var/lib/mysql \
     -d \
     mysql:5.7.25

    所需资料:mysql.tar(

    链接:https://pan.baidu.com/s/1YUqKAcfmsOFx_DwGHD__AQ
    提取码:p9rh

    )、

    hmy.cnf(

    链接:https://pan.baidu.com/s/1XYLtsyMSfNyNO8tU9dPTXg
    提取码:jgsp

  • 相关阅读:
    爬虫学习(五)——百度贴吧的爬取
    爬虫学习(四)——post请求爬取
    爬虫学习(三)——get请求参数解析
    爬虫学习(二)
    爬虫学习(一)
    第二阶段团队冲刺第三天
    第二阶段团队冲刺第二天
    第二阶段团队冲刺第一天
    第一阶段绩效评估
    Alpha版(内部测试版)发布
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15439923.html
Copyright © 2011-2022 走看看