docker的数据卷和docker的自定义镜像

本文详细介绍了Docker中的数据卷创建、查看和删除,以及如何将宿主机目录挂载到容器中实现数据共享。此外,还涵盖了自定义CentOS镜像和使用Dockerfile创建Tomcat镜像的过程。
摘要由CSDN通过智能技术生成

1.docker的数据卷

1.1创建 docker volume create 数据卷名称

在这里插入图片描述

1.2 查看数据卷docker volume ls

在这里插入图片描述

1.3 删除一个volume

docker volume rm my-vol

2.将宿主机的目录与容器的目录进行挂载,实现数据共享

docker run -di --name c2 -v /home/niyin/data/:/home/niyin/data/ centos:7
这个命令用于在 Docker 中以后台模式运行一个名为 "c2" 的容器,并将本地主机上的 /home/niyin/data/ 目录挂载到容器内的 /home/niyin/data/ 目录。以下是这个命令的详细分析:

docker run: 这是运行 Docker 容器的命令。
-di: 这是两个参数的组合,它们分别是:
-d:表示在后台模式下运行容器。容器将会在后台运行,而不会阻塞当前终端。
-i:表示交互式模式。即使容器以后台模式运行,也会保持 STDIN 打开,允许您向容器发送输入。
--name c2: 使用 --name 参数为容器指定一个名称,这里将容器命名为 "c2"。
-v /home/niyin/data/:/home/niyin/data/: 使用 -v 参数将本地主机上的 /home/niyin/data/ 目录挂载到容器内的 /home/niyin/data/ 目录。这样做可以使容器内的文件系统与主机上的文件系统进行共享或者持久化数据。
centos:7: 这是指定要运行的容器镜像。在这个命令中,使用的镜像是 centos:7,表示从 Docker Hub 上拉取名为 "centos"、标签为 "7" 的镜像来创建容器。
综上所述,这个命令的作用是以后台模式运行一个名为 "c2" 的容器,使用 CentOS 7 镜像,并将主机上的 /home/niyin/data/ 目录挂载到容器内的 /home/niyin/data/ 目录。

2.1数据卷相互共享

数据卷容器,此时我创建了一个c4和一个c6的容器,c4跟c6进行一个挂载,就相比于c4的数据卷容器里,装了一个c6
注意:分开执行

docker run -di -v /home/javaxd/data/c4 --name c4 centos:7
docker run -di --volumes-from c4 --name c6 centos:7

3.自定义镜像

3.1编辑Dockerfiile文件 vim mycentosDockerfile

    Dockerfile文件中的内容:

FROM centos:7
MAINTAINER javaxl "javaxl@qq.com"
RUN yum -y install vim
RUN yum install net-tools.x86_64 -y
CMD /bin/bash
通过Dockerfile构建镜像         docker build -f mycentosDockerfile -t javaxl/centos:v1.0 .
通过镜像运行一个容器进行测试        docker run -it --name mc1 javaxl/centos:v1.0 /bin/bash

因为从仓库里面下载都是阉割版,这样下载的镜像比较完整

3.2自定义tomcat

编辑Dockerfiile文件 vim mytomcatDockerfile
Dockerfile文件中的内容:

 FROM centos:7
    MAINTAINER javaxl "javaxl@qq.com"

    ENV workerDir /home/javaxl/dockerfile/3
    WORKDIR $workerDir

    ADD jdk-8u151-linux-x64.tar.gz $workerDir
    COPY apache-tomcat-8.5.20.tar.gz $workerDir
    RUN tar -xvf apache-tomcat-8.5.20.tar.gz apache-tomcat-8.5.20

    ENV JAVA_HOME $workerDir/jdk1.8.0_151
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV TOMCAT_HOME $workerDir/apache-tomcat-8.5.20
    ENV PATH $JAVA_HOME/bin:$TOMCAT_HOME/bin:$TOMCAT_HOME/lib:$PATH

    EXPOSE 8080
    ENTRYPOINT ["/home/javaxl/dockerfile/3/apache-tomcat-8.5.20/bin/catalina.sh","run"]

把软件移入对应的目录,然后通过Dockerfile构建镜像

  docker build -f mytomcatDockerfile -t javaxl/tomcat8:v1.0 .

通过镜像运行2个容器进行测试

docker run -di --name mt1 -P javaxl/tomcat8:v1.0
docker run -di --name mt2 -P javaxl/tomcat8:v1.0

如果觉得太麻烦就用8080端口,那就用这个:

docker run -di --name mt2 -p 8080:8080 javaxl/tomcat8:v1.

在这里插入图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值