一、数据卷基本操作
创建(一下均以my-vol作为数据卷名称)
docker volume create my-vol
查看:
a.查看所有
docker volume ls
b.按名字查看信息
docker volume inspect my-vol
删除
docker volume rm my-vol
二、挂载数据卷
在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。在一次 docker run 中可以挂载多个 数据卷 。
docker run -itd \
--name 容器名字 \
--mount source=数据卷名称,target=容器中的对应目录 \
镜像名称
如果要挂载多个,在source后再写一个source
\ 表示换行
如果数据卷不存在,docker会自动创建
如果容器上目录不存在, docker会自动创建
数据卷容器
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。 数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。
创建
docker run -itd --name name -v dir centos
挂载
docker run -itd --name name --volumes-from db_data centos
三、构建自定义镜像
1、准备基础镜像
centos
alpine
两个不同的基础镜像,alpine内存占用比centos小很多
2、编写Dockerfile文件
模板
#1.指定基础镜像,并且必须是第一条指令
FROM centos:latest
#2.指明该镜像的作者和其电子邮件
MAINTAINER xx "xx@qq.com"
#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/java
#4.一个复制命令,把jdk安装文件复制到镜像中,注意:jdk*.tar.gz使用的是相对路径
ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/
#5.配置环境变量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_221
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
#容器启动时需要执行的命令
#CMD ["java","-version"]
要保证需要使用到的文件,在Dockerfile文件的同级或者同级以下
如果只是要将原文件复制到镜像中,就不使用ADD因为ADD会自动解压
3、在当前目录进行编译
docker build -t name .
最后面的 . 一定要加,表示使用当前目录的Dockerfile