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
相关推荐
云飞云共享云桌面1 小时前
昆山精密机械公司8个Solidworks共用一台服务器
运维·服务器·网络·3d·自动化·制造
恒创科技HK1 小时前
中国香港服务器中常提到的双向/全程CN2是什么意思?
运维·服务器
MyCollege19991 小时前
win10使用ssh访问vmware虚拟机
linux·运维·centos
a栋栋栋5 小时前
wsl 环境下用Docker 安装多版本MySQL
mysql·docker·容器
潮落拾贝5 小时前
k8s部署kafka三节点集群
容器·kafka·kubernetes
大霞上仙5 小时前
jmeter实现两个接口的同时并发
运维·服务器·jmeter
饱饱要坚持可持续发展观6 小时前
docker 拉取本地镜像
docker
我就要用Cx3306 小时前
配置docker常见问题
运维·docker·容器
nmxiaocui6 小时前
openssl升级
linux·运维·服务器
最小的帆也能远航8 小时前
2018年下半年 系统架构设计师 综合知识
linux·运维·服务器