Docker数据卷、自定义镜像

一、数据卷基本操作

创建(一下均以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

上一篇:1)docker简介


下一篇:.NET Core 打包镜像,并部署镜像,更新镜像需要用的命令