Docker自定义构建镜像dockerfile和使用数据卷
Docker自定义构建镜像dockerfile和使用数据卷
DockerFile
DockerFile指令
构建步骤
FROM centos:7
# 基础镜像是centos7
# 作者
MAINTAINER cxy 2099289294@qq.com
# 设置环境变量
ENV MYPATH /usr/local
# 指定工作目录
WORKDIR $MYPATH
# 修改yum源 阿里的yum源
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理缓存并生成新的缓存
RUN yum clean all && yum makecache
# vim
RUN yum -y install vim
# net-tools
RUN yum -y install net-tools
#jdk
# 1.解压tar 包 自动解压
RUN mkdir /usr/local/java
ADD jdk-23_linux-x64_bin.tar.gz /usr/local/java/
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-23
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
# 要运行的程序
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
from拉过来基础镜像centos,下载我们需要的vim和net-tools,解压jdk包和设置jdk的环境变量,放出来一个80端口
创建镜像
语法:Docker build 【-f 文件的名字】-t 镜像的名字 .
docker build -t mycentos .
文件的名字不写的时候默认使用的是dockerfile
创建好之后使用命令查看
查看所有镜像
docker images
创建容器运行容器,并进入到容器内部
docker run -it --name=容器名字 镜像名字 bash
导出镜像
docker save -o mycentos.tar mycentos
可以看到~目录下会出现我们的镜像
导入镜像
将镜像远程传递给另一台服务器
scp ./mycentos.tar root@192.168.184.35:/usr/aaa
进入到另一台的服务器中加载镜像
cd /usr/aaa
docker load -i mycentos.tar
查看镜像是否加载
docker images
导入成功
数据卷
作用:
1. 数据的共享
2. 容器删除的时候数据不丢失
添加数据卷
直接添加
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /opt/myvolume:/opt/v1 --name=mycentos2 mycentos bash
运行了一个容器mycentos2 容器中opt/v1目录下面的所有的内容全部都挂载到了宿主目录中的opt/myvolume 里面
测试
进入容器内部
docker exec -it 容器名/id bash
进入刚和宿主机绑定的文件夹v1里,输出并创建一个文件,看宿主文件夹是否会同步创建
可以看到在我们的宿主机的文件夹里也同样会创建
即使容器被删除后也可以留下文件
原文地址:https://blog.csdn.net/Cao_XinYang/article/details/142489407
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!