Docker容器数据卷,DockerFile,Docker网络

本文深入解析Docker容器数据卷的作用及使用方法,包括数据卷的创建、具名与匿名挂载、数据同步等,并通过实例演示如何使用DockerFile构建自定义的CentOS和Tomcat镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、容器数据卷

1.为啥要有容器数据卷
因为一个需求:mysql的数据要存储在本地,防止容器删除数据丢失。
容器持久化和同步操作
2.使用

docker run -it -v 主机目录:容器内目录

测试

docker run -it -v /home/ceshi:/home centos /bin/bash

容器中的绑定信息
在这里插入图片描述
数据同步
在这里插入图片描述
挂载mysql

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7

3.具名和匿名挂载

具名挂载

docker run -d -P --name nginx03 -v guazai-nginx:/etc/nginx nginx

查看所有volume

docker volume ls

查看某个卷的具体信息

docker volume inspect guazai-nginx

在这里插入图片描述

手工打造docker镜像

步骤
1.创建脚本文件

vim dockerfile1

文件内容

FROM centos

VOLUME ["volume01","volume02"]

CMD echo "----end----"

CMD /bin/bash

2.生成镜像

docker build -f dockerfile1 -t lxl/centos:1.0 .

3.启动自己创建的镜像

docker run -it 容器id /bin/bash

在这里插入图片描述
在volume01文件夹中创建contain.txt

docker inspect 51e3ee9ea818

查看容器具体信息,获得其数据卷信息
在这里插入图片描述
在这里插入图片描述
容器数据卷:实现容器间的数据共享,数据同步

先启动docker01

docker run -it --name docker01 lxl/centos:1.0

docker02跟01同步数据

docker run -it --name docker02 --volumes-from docker01 lxl/centos:1.0

应用:多个mysql实现数据共享
在这里插入图片描述

二、DockerFile

在这里插入图片描述
DockerFile:构建文件,定义一切步骤,源代码
DockerImages:通过DockerFile构建生成的镜像
容器:镜像运行起来提供服务器
在这里插入图片描述
在这里插入图片描述
实战:构建自己的centos

FROM centos
MAINTAINER lxl

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
docker build -f mydockerfile -t mycentos:1.0 .

在这里插入图片描述
查看镜像历史

 docker history

在这里插入图片描述

实战:Tomcat镜像

1.准备镜像文件tomcat和jdk压缩包
2.编写脚本

FROM centos
MAINTAINER lxl

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u261-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.34.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_261
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.34
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.34
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HMOE/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.34/bin/startup.sh && tail -F /usr/apache-tomcat-9.0.34/bin/logs/catalina.out 

运行容器,挂载webapps

docker run -d -p 9090:8080 --name lxltomcat -v /home/mysqlandjava/test/:/url/local/apache-tomcat-9.0.34/webapps/test -v /home/mysqlandjava/tomcatlogs/:/url/local/apache-tomcat-9.0.34/logs diytomcat

docker run -d -p 9090:8080 --name diymytom -v /home/mysqlandjava/test:/usr/local/apache-tomcat-9.0.34/webapps/test -v /home/mysqlandjava/tomcatlogs/:/usr/local/apache-tomcat-9.0.34/logs mydiytom:1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值