docker的数据卷和docker的自定义镜像
- 1.docker的数据卷
- 1.1创建 docker volume create 数据卷名称
- 1.2 查看数据卷docker volume ls
- 1.3 删除一个volume
- 2.将宿主机的目录与容器的目录进行挂载,实现数据共享
- 2.1数据卷相互共享
- 3.自定义镜像
- 3.1编辑Dockerfiile文件 vim mycentosDockerfile
- 3.2自定义tomcat
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.