什么是容器数据卷

把容器内的数据持久化、同步
容器间共享数据

使用数据卷

命令方式挂载

  1. docker run -it -v 主机目录:容器内目录

查看容器信息

  1. docker inspect 容器id

image.png

如何确定是具名挂载还是匿名挂载

  1. -v 容器内路径 #匿名挂载
  2. -v 卷名:容器内路径 #具名挂载
  3. -v /宿主机路径::容器内路径 #制定路径挂载
  1. #通过 -v 容器内路径:ro rw改变读写权限
  2. ro readonly #只读
  3. rw readwrite #可读可写
  4. #一旦设置了容器权限,容器对我们挂载出来的内容就有限定了
  5. dodcker run -d -p --name nginx01 -v jumig-nginx:etc/nginx:ro nginx
  6. dodcker run -d -p --name nginx01 -v jumig-nginx:etc/nginx:rw nginx
  7. #ro 说明路径只能通过宿主机来操作,容器内部不能操作

数据卷容器

多个mysql 同步数据

  1. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-frm mysql01 mysql:5.7

容器间配置信息的传递,数据卷容器的生命周期一直持续到没有人使用为止

但是一旦持久化到了本地,这时候本地的数据是不会删除的

Dockerfile

dockerfile是用来构建docker镜像的文件

命令参数脚本

构建步骤

  1. 编写一个dockerfile文件
  2. docker build构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(dockerhub、阿里云镜像仓库)

    DockerFile构建过程

    基础知识:

  5. 每个保留关键字(指令)都必须是大写的

  6. 执行从上到下顺序执行
  7. 表示注释

  8. 每个指令都会创建一个新的镜像层,并提交

image.png
dockerfile是面向开发的,以后发布项目,做镜像,就要编写dockerfile文件

Dcoker镜像主键成为企业交付的标准,必须要掌握

DockerFile:构建文件,定义了一切的步骤,源代码

DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品

Docker容器:容器就是镜像运行起来提供服务器

DockerFile的指令

  1. FROM #基础镜像,一切从这里开始构建
  2. MAINTAINER #镜像是谁写的,一般是姓名+邮箱
  3. RUN #镜像构建的时候需要运行的命令
  4. ADD #添加内容 比如:tomcat镜像
  5. WORKDIR #镜像的工作目录
  6. VOLUME #挂载的目录
  7. EXPOSE #暴露端口配置
  8. CMD #指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
  9. ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
  10. ONBUILD #当构建一个被继承DockerFile这个时候就会运行ONBUILD指令
  11. COPY #类似ADD,将文件拷贝到镜像中
  12. ENV #构建的时候设置环境变量