Docker之数据卷&自定义镜像

目录

一、数据卷

​二、自定义镜像

2.1自定义centos


一、数据卷

在docker中,数据卷是宿主机的一个可以供一个或多个容器使用的特殊目录,它可以在容器之间共享和重用,本地与容器间传递数据更高效;对数据卷的修改会立马有效,在容器内部与本地目录均可对数据卷进行修改。

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

复制代码
#如果home目录下没有该文件夹,会自动帮你创建文件夹,并下载centos7
docker run -di --name c2 -v /home/javaxd/data/:/home/javaxd/data/ centos:7

数据卷容器,此时我创建了一个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

去测试一下,我们在c4里面写东西

此时我们进入c6看看是否能看到c4写的东西

二、自定义镜像

作用:用来制作镜像的文件

2.1自定义centos

编辑Dockerfile文件(自定义的相对于网上的多了ifconfig命令)

复制代码
vim mycentosDockerfile

进入Dockerfile文件后,把下面代码放进去

复制代码
#第一行的意思:以哪个一个官方的镜像,我自己做的镜像是基于哪个镜像的
#第二行的意思:署名(作者)联系方式
#第三行的意思:在我自己做的镜像里执行该命令
#第四行的意思:同时下载一个网络工具
FROM centos:7
MAINTAINER javaxd "javaxd@qq.com"
RUN yum -y install vim
RUN yum install net-tools.x86_64 -y
CMD /bin/bash

通过Dockerfile构建镜像

复制代码
注意:最后那个点不是不小心加的,必须要加,否则你做镜像肯定失败
docker build -f mycentosDockerfile -t javaxd/centos:v1.0 .

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

复制代码
docker run -it --name mc1 javaxl/centos:v1.0 /bin/bash

自定义tomcat8(熟悉几乎所有的Dockerfile命令)

复制代码
cd /javaxl/software
mkdir mydocker
vim 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"]

我们编辑的内容里的安装包,我们是需要的吧,所以我们还要上传安装包,因为我是在data运行的mytomcatDockerfile,所以必须把安装包传到data里,官方的tomcat不能直接使用

通过Dockerfile构建镜像

复制代码
docker build -f mytomcatDockerfile -t javaxd/tomcat8:v1.0 .

通过镜像启动容器进行测试

复制代码
docker run -di --name mt1 -P javaxd/tomcat8:v1.0

如果你想就直接8080的话,就改成-p 8080:8080,容器名不要重复

复制代码
docker run -di --name mt2 -p 8080:8080 javaxd/tomcat8:v1.0
相关推荐
用户03284722207012 小时前
如何搭建本地yum源(上)
运维
武子康13 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造