首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用docker构建到主机目录中

在使用 Docker 时,有时你可能希望将容器中的文件或目录映射到主机上的目录中,以便在主机和容器之间共享数据。这可以通过 Docker 的卷(volumes)或绑定挂载(bind mounts)来实现。

以下是如何使用 Docker 将容器中的目录映射到主机上的目录的步骤:

1. 使用 docker run 命令

你可以在运行容器时使用 -v--mount 选项来指定卷或绑定挂载。

使用 -v 选项

-v 选项的语法是 [host_path]:[container_path],其中 host_path 是主机上的目录,container_path 是容器中的目录。

代码语言:javascript
复制
docker run -d \
  -v /path/on/host:/path/in/container \
  --name my_container \
  my_image

例如,将主机上的 /home/user/data 目录映射到容器中的 /app/data 目录:

代码语言:javascript
复制
docker run -d \
  -v /home/user/data:/app/data \
  --name my_container \
  my_image

使用 --mount 选项

--mount 选项提供了更详细的语法,适合需要更多配置的情况。

代码语言:javascript
复制
docker run -d \
  --mount type=bind,source=/path/on/host,target=/path/in/container \
  --name my_container \
  my_image

例如,将主机上的 /home/user/data 目录映射到容器中的 /app/data 目录:

代码语言:javascript
复制
docker run -d \
  --mount type=bind,source=/home/user/data,target=/app/data \
  --name my_container \
  my_image

2. 使用 Docker Compose

如果你使用 Docker Compose 来管理容器,可以在 docker-compose.yml 文件中定义卷或绑定挂载。

以下是一个示例 docker-compose.yml 文件:

代码语言:javascript
复制
version: '3.8'

services:
  my_service:
    image: my_image
    volumes:
      - /home/user/data:/app/data

然后运行:

代码语言:javascript
复制
docker-compose up -d

3. Dockerfile 中的卷声明

在 Dockerfile 中,你可以使用 VOLUME 指令来声明卷,但这只是一个声明,实际的挂载还是需要在运行容器时指定。

代码语言:javascript
复制
FROM ubuntu:latest
VOLUME /app/data

在运行容器时,使用 -v--mount 选项来实际挂载主机目录:

代码语言:javascript
复制
docker run -d \
  -v /home/user/data:/app/data \
  --name my_container \
  my_image
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

docker:(3)docker容器挂载宿主主机目录

有一项重要的参数 -v 目录挂载,就是让容器内部目录和宿主主机目录关联起来,这样就可以直接操作宿主主机目录而不用再操作具体容器了 比如在2,我们要发布一个war包,是通过   sudo docker.../tomcat:v1   -p     不解释   --name   不解释    -v /home/xiaochangwei/test:/usr/local/tomcat/webapps 就是将宿主主机目录和容器目录建立映射关系...,冒号前为宿主主机目录,冒号后为容器对应目录   执行上面的命令启动,这次启动就和上一篇文章的启动日志有点差异了:差异就在容器启动时,tomcat加载了我们映射的宿主主机目录的war包 xiaochangwei...:31.980 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 10604 ms 按照说明,如果在宿主主机目录再放一个...,有发布需求的时候,直接将war包拷贝宿主主机目录即可,容器叫什么名字,对应的容器的发布路径在哪里就与发布者无关了 下一篇文章我将讲解和jekins集成,让代码编译好后自动部署docker 2015

2.5K10

Docker配置mysql以及宿主机容器目录挂载

Docker配置mysql以及宿主机容器目录挂载 在之前的docker 挂载主要说明了创建数据卷并挂载的方式。现在我们做一种创建普通目录并进行挂载的方式。 基于mysql镜像的拉取并进行配置。...首先拉取mysql镜像 docker pull mysql:8.0.29 这样直接拉取完毕后,你再去查看下目前投的镜像 docker images 你看这个版本的镜像就有了 因为mysql...一定要安排好你目录的位置。我的在根目录下直接创建了这样的分级文件夹。创建的命令就不说了。 那么我们写一段命令,比较长,但是并不复杂。...一般叫做把宿主机的端口映射到容器。mysql,默认的监听端口是3306,如果你不修改这里默认的话,那么这里的第二个端口一定是3306,如果你这里随便写一个,是无法正确映射到的。...将来我们在我们主机连接远程服务器,我们的远程服务器的注解地址加上这个端口就是我们这个mysql容器的访问链接。 -v 这里后面我们就是做了一个宿主目录和容器目录的挂载映射。

2.3K20

CentOS 7httpd服务构建虚拟Web主机与虚拟目录设置详解

虚拟Web主机指的是在同一台服务器运行多个Web站点,其中的每个站点实际并不独立占用整个服务器,因此被称为“虚拟”Web主机。...通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。 使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能同事支撑大量的Web站点。...httpd服务支持的虚拟主机类型包括以下三种: 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的; 基于IP地址:为每个虚拟主机使用不同的域名,其各自对应的IP地址也不相同; 基于端口...这几种虚拟Web主机,基于域名的虚拟主机使用最为广泛的;基于IP地址和基于端口的虚拟主机一般只适用于公司内部。...服务的用户限制详解 客户机访问测试 如果虚拟目录针对虚拟主机,请在虚拟主机配置文件添加。

1.1K10

Docker使用-构建MySQL

# 拉取最新版mysql镜像 MySQL文档地址 检查是否拉取成功 $ sudo docker images 一般来说数据库容器不需要建立目录映射 sudo docker run -p 3306:3306...MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 –name:容器名,此处命名为mysql -e:配置信息,此处配置mysql的root用户的登陆密码 -p: 指定端口映射,格式为:主机...(宿主)端口:容器端口 如果要建立目录映射 sudo docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc...\ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录 检查容器是否正确运行 docker container...ls 或 docker ps 可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字 使用Nacivatl连接MySQL

59230

使用Makefile构建Docker

使用Makefile构建Docker 刚开始学习docker命令的时候,很喜欢一个字一个字敲,因为这样会记住命令。后来熟悉了之后,每次想要做一些操作的时候就不得不 重复的输入以前的命令。...比如https://github.com/Ryan-Miao/docker-yapi。 直到有一天,发现有人使用Makefile来存储操作,瞬间感觉很棒。 这里简单记录Makefile的简单用法。...大致是说make是GNU维护和组织程序的。比如我们的C语言编译, 再比如源码安装某些软件,比如nginx的时候。那么GNU是什么鬼?...Docker构建用的指令 我常用的Makefile如下 NAME = ryan/airflow VERSION = 1.10.4 .PHONY: build start push build: build-version...; docker push ${NAME}:latest 构建一个版本的镜像 make build 构建完毕,运行一下镜像,看看内容是否正确 make start 最后推送到docker仓库 make

3.7K30

Docker 使用Dockerfile构建Docker(三)

除了使用Dockerfile构建镜像,也可手工制作 Docker镜像,但这种方式烦琐效率低,一般不适合生产。 Dockerfile 常用指令 在前面的例子,提到了FORM、RUN指令。...""] 从src目录复制文件容器的dest。其中src可以是 Dockerfile所在目录的相对路径,也可以是一个URL,还可以是一个压缩包。...EXPOSE port1 port2 port3 相应的运行容器使用的命令 docker run -p port1 -p port2 -p port3 image 也可指定需要映射到宿主机器上的端口号...示例: USER Jacob VOLUME 指定挂载点 该指令使容器的一个目录具有持久化存储的功能,该目录可被容器本身使用,也可共享给其他容器。...使用Dockerfile 构建 Docker 镜像 创建 Dockerfile 文件,并添加一下内容 #指定镜像 FROM java:8 #将本地文件夹挂载到当前容器 VOLUME /tmp #复制文件容器

85010

如何使用CrawlBox遍历爆破Web主机目录

关于CrawlBox  CrawlBox是一款功能强大的Web主机目录遍历与爆破工具,在该工具的帮助下,广大研究人员可以轻松对目标Web主机/站点执行目录遍历,并以此来检测Web服务器的安全性。...接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/abaykan/crawlbox.git 然后切换到项目目录使用pip命令和项目提供的...: cd crawlbox/pip install -r requirements.txt 安装完成后,运行下列命令即可查看工具帮助信息: python crawlbox.py -h  工具使用...--help:显示工具帮助信息和退出; -v, --version:显示工具版本信息和退出; -w WORDLIST:指定字典文件路径; -d DELAY:设置每次请求之间的延迟间隔时间;  工具使用样例...  使用内部字典扫描目标网站 python crawlbox.py www.domain.com 使用外部字典扫描目标网站 python crawlbox.py www.domain.com

46620

Docker 入门实战教程(五)构建Docker镜像

3.1.8 ADD 说明:复制指定的路径下的内容容器的路径下。...3.1.9 COPY 说明:复制本地主机的(Dockerfile所在目录的相对路径、文件或目录)下的内容镜像的下,目标路径不存在时,会自动创建。...这个目录就是我们的构建环境,在Docker,将这个环境称为上下文(content)或者构建上下文(build content)。...构建镜像时,Docker会将构建环境的文件和目录传递给守护进程,这样守护进程就访问到用户想在镜像存储的任何代码、文件或其它数据。...(同./)告诉Docker从本地当前工作目录查找Dockerfile文件 3.3.1 构建缓存 由于构建过程的每一步都会将结果提交为镜像,Docker 会将这些镜像做为缓存使用

2.6K10

使用 Tekton Sidecar 实现 Docker IN Docker 构建

上面我们在构建容器镜像的时候是通过挂载宿主机docker.sock 文件容器来执行的,严格意义上来说这种方式叫 Dood - Docker Outside of Docker,DooD 通过绑定安装...Docker 套接字来使用其底层宿主机Docker Daemon,而真正的 DinD 是在其中包含一个完整的 Docker 服务。...这里我们就来使用 Sidecar 的方式为 Tekton 的容器构建提供一个 DinD 模式的构建服务。...:2376 和 docker 服务端进行通信,由于还使用的是 TLS 证书模式,所以需要将证书目录进行声明挂载。...这种方式还可以避免在宿主机上产生大量无用的构建过程产生的镜像,因为每次构建完成就销毁掉了,这才是真正的 Docker IN Docker,也是 Tekton 的 Sidecar 的一个使用场景。

1.2K20

Docker入门:使用Dockerfile构建Docker镜像

11 二、镜像制作 创建镜像制作根目录,例如:d:\docker\helloworld(Windows),~/docker/helloworld(macOS),后续所有文件都放在该目录 1、准备应用代码...FROM golang:1.19.4 # 将工作目录设置为 /app WORKDIR /app # 将当前目录下的所有内容复制 /app 下 COPY ....Client或者Docker Desktop登录自己的账号,这里使用Docker Client做演示 #登录命令 docker login #根据命令号交互输入注册时的账号密码即可成功登录 Login...常见镜像的过程使用Build Cache构建镜像 —pull 构建镜像时总是拉取Base Image的最新版本 2、Dockerfile常用指令 指令 描述 FROM 指定基础镜像,可以指定多个...RUN 构建镜像时运行命令,可以用他安装软件等等 COPY 拷贝文件或目录到镜像 ADD 拷贝文件或目录到镜像,如果源文件是gizp等压缩文件,会被自动解压到目标目录 ENV 设置环境变量 USER

8.5K11

使用Docker构建ZooKeeper镜像

这篇文章我们将使用 Docker 创建 Zookeeper 镜像,包括如何将 Zookeeper 安装到容器,如何配置 ZooKeeper 应用程序以及如何在宿主机和容器之间共享数据卷。...在下面 Dockerfile ,我们使用 openjdk 镜像构建容器: FROM openjdk:8-jre-alpine 使用jdk镜像就不用我们自己安装jdk,操作比较方便。...上述命令足以构建我们的 Docker 镜像,使用如下命令构建 docker-zookeeper 镜像: wy:Dockerfile wy$ docker build -f Dockerfile-jdk...例如,公开容器的端口并将宿主机端口映射到容器的端口上,我们可以指定要绑定的多个端口: docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 smartsi.../conf 目录的所有文件都被映射到容器上的 /opt/zookeeper/conf 目录docker run -it -v conf:/opt/zookeeper/conf smartsi/

2.8K20

使用docker构建ElasticSearch集群

/elasticsearch ElasticSearch对共享目录的文件夹权限有要求,因此这里为共享目录设置权限 # 4、将当前用户的内存权限变大 查看当前用户的内存权限 sysctl -a|grep...discovery.zen.ping.unicast.hosts: ["es_101","es_102","es_103"] http.cors.enabled: true http.cors.allow-origin: "*" # 四、执行构建...ElasticSearch集群 # 1、开始构建 cd /data/docker-compose/elasticsearch docker-compose up -d 此时,因为没有授予共享目录文件夹权限...,因此es集群其实是启动不成功的 # 2、授予文件夹权限 chmod -R 777 /data/docker-data/elasticsearch/ # 3、重新执行构建 cd /data/docker-compose.../elasticsearch docker-compose restart # 五、验证结果: 宿主机:192.168.78.200 访问192.168.78.200:9201 或 192.168.78.200

16010

Docker初识使用

Docker初识使用 目录 博主介绍 1、初识Docker 1.1、什么是Docker 1.1.1、应用部署的环境问题 1.1.2、Docker解决依赖兼容问题 1.1.3、Docker解决操作系统环境差异...2.3.1、什么是数据卷 **数据卷(volume)**是一个虚拟目录,指向宿主机文件系统的某个目录。 一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。...-v 宿主机文件:容器内文。 -v 宿主机目录:容器内目录。 数据卷挂载与目录直接挂载的: 数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找。...步骤3:提前下载jdk8.tar.gz文件docker-demo这个目录。 步骤4:新建一个Dockerfiledocker-demo这个目录。...② 准备docker-demo.jar这个目录。 ③ 编写Dockerfile文件:。 a )基于java:8-alpine作为基础镜像。 b )将app.jar拷贝镜像

32710

Linux 复制文件多个目录

文章目录 概述 通常写法 快捷写法 概述 在学习 Linux 的过程,对于新手而言总是会使用几个命令来完成一个简单的任务。对正在熟悉使用终端的人这是很容易理解的行为。...在本篇,我们会用一个简单的方法在 Linux 中用一个命令来将目录复制多个文件夹。...---- 通常写法 在 Linux ,cp 命令常被用于从一个文件夹复制文件另一个文件夹,最简单的语法如下: # cp [options….] source(s) destination 看下下面的命令...,通常你会使用两个不同的命令来将相同的文件复制不同的文件夹: # cp -v /home/xgj/bin/sys_info.sh /home/xgj/test # cp -v /home/xgj/bin...home/xgj/bin/sys_info.sh 上面的命令目录的路径(dir1、dir2、dir3…dirN)被管道作为输入 xargs 命令,含义是: -n 1 - 告诉 xargs 命令每个命令行最多使用一个参数

5.3K10

docker如何查看宿主机容器端口映射

docker/Docker如何查看宿主机容器端口映射关系 背景 前些天的时候, 在定位问题时发现docker emqx 连接websocket (8083)端口出现异常....如果你能够确定不可以, 那你考虑可以跳过本篇文章 ---- 如何查看宿主机端口映射?...方式一(docker ps) 我们不妨回顾下, docker 如何建立端口的映射: 在建立端口映射时, 我们通常会采用docker run 容器id的方式去运行容器并添加容器宿主机的映射....指定端口的映射时宿主机端口到运行容器端口的映射 因此我们在运行docker ps, 查看的结果就是按照宿主机端口->运行容器端口显示的 图片 从上图可以看出, 宿主机的 3307端口绑定到了docker...我们也可以从这里确认没有建立宿主机8083端口->容器8083端口的映射 ---- 如何添加宿主机端口映射? 上面问题解决了, 但有新的问题出现了.

14.9K40
领券