Docker-数据卷(Data Volumes)dockerfile

news2024/11/19 14:50:46

目录

一,宿主机与容器之间的文件拷贝

1.1 容器中怎么上传项目(文件)

1.2 从宿主机拷贝文件到容器

1.3 从容器中拷贝文件到宿主机

 二 数据卷

 三 数据卷容器

 四 Dockerfile

Dockerfile制作增强版

自定义centos 具备vim以及ifconfig

Dockerfile制作自定义tomcat


一,宿主机与容器之间的文件拷贝

引言:利用MySQL镜像安装MySQL服务

docker run -p 3307:3306 --name mysql1   -di -v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/javaxl/data/mysql/data/:/var/lib/mysql -v /home/javaxl/data/mysql/log/:/var/log -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

1.1 容器中怎么上传项目(文件)

将项目上传到tomcat的webapps中

 若没有tomcat可以先进行下载

下载tomcat

docker run -it --name tomcat3 tomcat:8 /bin/bash 

退出容器(不会停止容器 所以下一步查看的容器中有tomcat的话就不用再次运行了

ctr+p+q

查看正在使用的容器

docker ps

使用过的容器

docker ps -a

运行tomcat容器

docker start tomcat3

进入容器

docker exec -it tomcat3 /bin/bash

进入webapps目录

cd webapps

1.2 从宿主机拷贝文件到容器

宿主机目录下的tomcat为手动提前备好的文件

 docker cp /javaxl/software/mydocker/apache-tomcat-8.5.20.tar.gz tomcat3:/usr/local/tomcat/webapps

1.3 从容器中拷贝文件到宿主机

再这之前时 已经在容器的tomcat/webapps目录下创建了一个111.log 文件

进入容器

docker exec -it tomcat3 /bin/bash

进入webapps目录

cd webapps

创建文件111.log

touch 111.log

模拟将日志文件移至外部的宿主机目录下的情况

但是这是比较麻烦的 而且做不到实时更新日志 只有拷贝过来时的日志

docker cp tomcat3:/usr/local/tomcat/webapps/111.log /javaxl/software/mydocker

 二 数据卷

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

docker run -di --name c2 -v

/home/xl/data/          宿主机目录

:/home/may/data/     容器的指定目录

centos:7                    建一个centos:7的服务

我们正在使用的就是centos:7的服务 也就是说在centos:7 的服务下再建一个虚拟的centos:7的服务器

docker run -di --name c2 -v /home/xl/data/:/home/may/data/ centos:7        

 因为上传超时 截了超时的图 有点模糊还请见谅 

 结论:不管宿主机、容器在指定目录创建文件夹还是文件,都会会被共享;

 三 数据卷容器

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

 其中c4为数据卷容器,c6为普通容器,其中c4就起到一个桥接作用

我们可以通过docker inspect查看容器的详细情况

docker inspect c4
docker inspect c6

 c4

 c6

会发现c4、c6目录挂载情况是一样的

结论:不管c4、c6在指定目录创建文件夹还是文件,都会会被共享;

四 Dockerfile

Dockerfile制作增强版

自定义centos 具备vim以及ifconfig

举例 我们用下载的centos:7镜像 运行一个容器 是没有vim命令的 只有vi

所以我们可以自定义centos 具备vim以及ifconfig作用
vi mycentosDockerfile

向 mycentosDockerfile 编辑内容

FROM centos:7         依靠centos:7 进行增强
MAINTAINER javaxl "javaxl@qq.com"          创造者备注
RUN yum -y install vim          下载vim命令
RUN yum install net-tools.x86_64 -y          下载 ifconfig命令
CMD /bin/bash         进入容器的方法

FROM centos:7
MAINTAINER javaxl "javaxl@qq.com"
RUN yum -y install vim
RUN yum install net-tools.x86_64 -y
CMD /bin/bash

构建镜像

docker build -f mycentosDockerfile(若此处名为Dockerfile 则可省略) -t javaxl/centos:v1.0 .

docker build -f mycentosDockerfile -t javaxl/centos:v1.0 .

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

docker run -it --name mc1 javaxl/centos:v1.0 /bin/bash

 成功创建!!!

Dockerfile制作自定义tomcat

 非自定义的tomcat不可访问

第一步:

vi mytomcatDockerfile

第二步:

向 mytomcatDockerfile 编辑内容

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"]

注意其中的:

ADD jdk-8u151-linux-x64.tar.gz $workerDir 添加进入工作目录并解压
COPY apache-tomcat-8.5.20.tar.gz $workerDir 添加进工作目录不解压力
 

以及准备jdk

第三步:

构建镜像

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

第五步:

浏览器输入 两个都可以访问

http://192.168.195.139:49153/
http://192.168.195.139:49154/

但是此jdk是不可控的 只做自定义tomcat演示 之后再为大家讲解如何让端口可控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs+vue农产品进销存管理系统

摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 2 2.5 MySQL数据库 3 第3章 系统分析 4 3.1 需求分析 4 3.2 系统可行性分析 4 3.2.1技术可行性:技术背…

Python进阶学习

Python进阶学习 参考资料: AILearning菜鸟教程python之platform模块 python-version: 3.9 使用Jupyter进行练习 一、sys模块 import sys命令行参数 sys.argv 显示传入的参数: %%writefile print_args.py import sys print(sys.argv)Writing print_a…

达摩院开源低成本大规模分类框架FFC CVPR论文深入解读

一、论文&代码 论文链接:An Efficient Training Approach for Very Large Scale Face Recognition 应用&代码: https://modelscope.cn/models/damo/cv_ir50_face-recognition_arcface/summary https://modelscope.cn/models/damo/cv_resnet_f…

使用ONNXRuntime部署阿里达摩院开源DAMO-YOLO目标检测,一共包含27个onnx模型(代码开源)...

2022点击蓝字 关注我们关注并星标从此不迷路计算机视觉研究院学习群|扫码在主页获取加入方式获取代码|关注并回复“onnx部署”01概述ONNXRuntime是微软推出的一款推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后…

深入理解 equals() 方法以及与 == 的区别

当使用 判断两个变量是否相等时 如果两个变量是基本类型的变量,且都是数值类型,只要两个变量的数值相等,则返回 true 对于两个引用类型变量, 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址…

vue+element-ui el-date-picker日期组件再次封装(DatePicker与DateTimePicker合并根据type值来显示)

1、最终效果 2、TDatePicker 参数配置 1、简介&#xff1a;基于 ElementUI DatePicker DateTimePicker 组件的二次封装&#xff0c;取决于 type 值 代码示例&#xff1a; <t-date-picker v-model"date" />2、t-date-picker&#xff08;Attributes&#xff0…

【AI工程论文解读】05-通过Ease.ML/CI实现机器学习模型的持续集成(下)

持续集成是一种软件开发实践&#xff0c;即团队开发成员经常集成他们的工作&#xff0c;通常每个成员每天至少集成一次&#xff0c;也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建&#xff08;包括编译&#xff0c;发布&#xff0c;自动化测试)来验证&#xff…

cmake基础

cmake从基础到实站 cmake官方教程翻译版 CMake Cookbook中文版 cmake 备忘录 需要注意的一点&#xff1a;QT6采用cmake作为编译系统 CMake是一种跨平台编译工具&#xff0c;CMake主要是编写CMakeLists.txt文件&#xff0c;然后通过cmake命令将CMakeLists.txt文件转化为make所需…

如何理解数据库事务?

目录 &#x1f407;今日良言:保持热爱 奔赴山河 &#x1f409;一、数据库事务 &#x1f433;1.概念 &#x1f433;2.使用 &#x1f433;3.特性 &#x1f407;今日良言:保持热爱 奔赴山河 &#x1f409;一、数据库事务 &#x1f433;1.概念 事务指逻辑上的一组操作&…

学生体育铅球网页设计作品静态HTML网页模板源码 大学生体育铅球网站制作 简单校园体育网页设计成品

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

[附源码]JAVA毕业设计医院远程诊断系统(系统+LW)

[附源码]JAVA毕业设计医院远程诊断系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

SQLServer性能排查之CPU使用率过高的问题

【背景】 华北某SQLServer数据库从12月起出现CPU使用率过高的情况&#xff0c;一直未能够找到原因。当时电话简单将思路进行分享&#xff0c;反馈SQLServer中出现CPU使用率过高有许多可能原因&#xff0c;但常见的原因如下最为常见&#xff1a; 由于以下情况&#xff0c;表或…

【数据结构】跳表Skiplist

文章目录跳表--skiplistskiplist的概念skilplist的原理skilplist的实现随机值函数跳表节点跳表框架查找函数寻找前置节点添加元素删除元素打印链表测试结果Skiplist与其他Key-Value结构的比较跳表–skiplist skiplist的概念 skiplist本质上也是一种查找结构&#xff0c;用于解…

产品待办列表梳理(PBR)是什么?

产品待办列表(PBL)是Scrum框架下最重要的一个工件(Artifact)&#xff0c;产品待办列表的梳理(Product backlog Refinement-PBR)也是一个重要的活动&#xff0c;它不同于Scrum的3-3-5-5。仔细阅读Scrum指南&#xff0c;对产品待办列表梳理活动的描述是有限的&#xff1a; “只有…

R语言基于树的方法:决策树,随机森林,Bagging,增强树

概观 本文是有关 基于树的 回归和分类方法的。最近我们被客户要求撰写关于决策树的研究报告&#xff0c;包括一些图形和统计输出。 视频&#xff1a;从决策树到随机森林&#xff1a;R语言信用卡违约分析信贷数据实例 从决策树到随机森林&#xff1a;R语言信用卡违约分析信贷…

『微信小程序从0到1』视图与逻辑

&#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409; 请乘理想之马&#xff0c;挥鞭从此起程&#xff0c;路上春色正好&#xff0c;天上太阳正晴&#x1f43e;&#x1f43e;&#x1f43e;/font> &#x1f308;博客主页&#x1f449;白小…

【SQL】主从复制

主从复制主从复制的作用主从复制的原理一主一从架构主从配置文件1.主机配置2.从机配置3.主机建立账户并授权4.从机&#xff1a;配置需要复制的主机5.测试6.停止主从同步binlog_format三种格式双主双从架构如何提升数据库并发能力&#xff1a;在实际工作中&#xff0c;我们常常将…

B站运营,B站游戏数据如何分析?

B站聚集了大部分年轻人&#xff0c;用户量和黏性一直持续增长&#xff0c;在B站&#xff0c;游戏也是重点发展的一个分区&#xff0c;而对于运营者想做好游戏运营也并非易事&#xff0c;想做好运营掌握游戏数据必不可少&#xff0c;那么应该如何查看游戏数据呢&#xff1f; 一…

童年 高尔基

每周读一本经典&#xff0c;大概从2022年11月开始了&#xff0c;目前已经读了4本&#xff0c;csdn平台更适合技术分享&#xff0c;知乎比较适合书籍分享 《童年》是高尔基三部曲中的第一部。坐在柳东图书馆像海水浸过的沙子般座椅&#xff0c;周末的下午沉浸在高尔基先生奇特的…

线程池应用(四)

线程池应用线程池线程池应用多线程应用同步和异步1. 需要等待结果1. join 实现&#xff08;同步&#xff09;2. Future 实现&#xff08;同步&#xff09;3.CompletableFuture 实现&#xff08;异步&#xff09;4. BlockingQueue 实现&#xff08;异步&#xff09;2. 不需等待结…