12 -docker容器数据卷添加有两种方法:

12 -docker容器数据卷添加有两种方法:,第1张

1 .直接命令添加

(1)docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

(2)容器和宿主机之前的数据饿共享

(3)容器停止后,宿主机修改文件, 仍然同步到容器中

2 . DockerFile添加

(1) 在根目录下创建mydocker 并进入

(2) 可以在Docerfile中使用VOLUME指定给镜像添加一个或者多个数据卷

(3)构建file

vim DockerFile

(4) build后生成镜像

docker build -f /mydocker/Dockerfile -t tina/centos .

docker images 查看生成的镜像

(5)根据镜像生成一个容器

docker run -it tina/centos 根据该镜像生成一个容器

(6)可以去容器内部查看容器中的数据卷分别对应的宿主机中的文件位置

docker inspect 容器ID

容器之间的配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

docker build -f /mydocker/Dockerfile2 -t mycentos:2.3 .

docker run -it mycentos:2.3

docker images mycentos

docker history ec5b7d6c1768

配置文件名为:project.properties,内容如下:

# 是否开启逻辑删除

del.filter.on=false

domain=http://www.366go.cn/

修改Spring配置文件

之前代码:

<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:dbinfo.properties</value>

</list>

</property>

</bean>

修改后的配置文件

<bean id="propertyConfigurer"

class="com.hisun.core.util.CustomizedPropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:dbinfo.properties</value>

<value>classpath:project.properties</value>

</list>

</property>

</bean>

加入了classpath:project.properties,其为自定义的配置文件

将PropertyPlaceholderConfigurer类修改为自定义类CustomizedPropertyPlaceholderConfigurer,

PropertyPlaceholderConfigurer类的具体作用可以查资料这块儿不做详细介绍

定义CustomizedPropertyPlaceholderConfigurer类

类的具体内容为下,

import java.util.HashMap

import java.util.Map

import java.util.Properties

import org.springframework.beans.BeansException

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

public class CustomizedPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

private static Map ctxPropertiesMap

@Override

protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,

Properties props) throws BeansException {

super.processProperties(beanFactoryToProcess, props)

ctxPropertiesMap = new HashMap()

for (Object key : props.keySet()) {

String keyStr = key.toString()

String value = props.getProperty(keyStr)

ctxPropertiesMap.put(keyStr, value)

}

}

public static Object getContextProperty(String name) {

return ctxPropertiesMap.get(name)

}

}

定义获取配置文件中值的类SpringPropertiesUtil

类的具体内容如下:

import org.springframework.beans.BeansException

import org.springframework.context.ApplicationContext

import org.springframework.context.ApplicationContextAware

import org.springframework.stereotype.Component

/**

* Spring-PropertiesUtil工具类 -获取属性值

*

*/

@Component

public class SpringPropertiesUtil implements ApplicationContextAware {

public static final String KEY = "propertyConfigurer"

private static ApplicationContext applicationContext

public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

SpringPropertiesUtil.applicationContext = applicationContext

}

public static ApplicationContext getApplicationContext() {

return applicationContext

}

/**

* 获取配置文件中的内容

*

* @param keyName

* @return

*/

public static String parseStr(String keyName) {

CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext

.getBean(KEY)

return cp.getContextProperty(keyName).toString()

}

/**

* 获取配置文件中的内容

*

* @param keyName

* @return

*/

public static int parseInt(String keyName) {

CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext

.getBean(KEY)

return Integer.parseInt(cp.getContextProperty(keyName).toString())

}

/**

* 获取配置文件中的内容

*

* @param keyName

* @return

*/

public static double parseDouble(String keyName) {

CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext

.getBean(KEY)

return Double.parseDouble(cp.getContextProperty(keyName).toString())

}

}

这样,在项目当中就能够方便快速的获取properties文件中配置的参数

如SpringPropertiesUtil.parseStr(“content”)

关于Docker容器,其实就是基于一个Docker镜像创建的,而且Docker镜像本身则可以通过Docker命令工具,或者Dockerfiles来生成。在容器之间拷贝数据,也是Docker的一个重要而且基本的功能,将数据拷贝到其他容器也是一个经常使用的场景。不过需要怎样将Docker容器中的文件导入主机呢?这里小编就给大家介绍下,关于Docker容器中的文件导入到主机的具体 *** 作方法。

docker

cp

容器ID:容器中文件的绝对路径 主机路径

docker

cp使用方法

docker

cp

03091bf3d393:/root/Documents/combo.cpp

。/

上面这条命令就是把ID为03091bf3d393的容器中的/root/Documents/目录下的combo.cpp文件拷贝到主机的当前目录下。

关于Docker容器中的文件导入到主机的 *** 作方法就介绍完了,拷贝Docker容器中的文件到其他容器能起到备份数据的作用,如果用户想导入文件到主机的用户可以按照上面的方法 *** 作即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7981369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存