AWS TerraForm自动化多个NVME <x>
我需要在AWS中使用C5实例类型,发现这打破了我的Terraform自动化.与T2实例不同,每个引导序列在/dev 下提供一致的设备名称. resource "aws_volume_attachment" "ebs_att" { device_name = "/dev/xvdb" volume_id = aws_ebs_volume.dev_build_data_dir.id instance_id = aws_instance.dev_build.id skip_destroy = "true" } 在EC2实例上创建精确的/dev/xvd(x)设备.易于自动化. 然而,在使用多重(设备)的C5实例上>并且在主机或重新启动中不一致.就我而言,我有多卷要安装. 从服务器端我看不到任何可以用于自动化的东西: [root@ip-192-168-1-110 ~]# ls /dev/disk/by-id/ nvme-Amazon_Elastic_B
0 2024-01-26
编程技术问答社区
Docker:改变存储docker卷的文件夹
在我的Ubuntu EC2上,我使用Docker容器托管了一个应用程序. db数据和upload数据存储在卷中CaseBook-data-db和CaseBook-data-uploads,这些命令正在创建: : docker volume create --name=CaseBook-data-db docker volume create --name=CaseBook-data-uploads 通过docker-compose文件附加的卷: version: '2' services: mongo: container_name: "CaseBook-db" restart: always image: mongo:3.2.7 ports: - "27017" volumes: - data_db:/data/db
2 2024-01-24
编程技术问答社区
Docker命名卷的位置Mac
我正在为Mac 1.12.1使用Docker,并拥有一个启动WordPress和MySQL Services 的Docker组合文件 撰写文件 version: '2' services: db: container_name: mysql_db image: mysql:5.7 volumes: - "./.data/db:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: container_name: wordpress depends_on: - db im
0 2023-12-11
编程技术问答社区
如何在Windows路径中使用卷标?
我想使用批处理文件复制可移动驱动器的文件. 到目前为止,没有.似乎没有任何容易获得的命令或第三方命令行工具可以根据音量标签处理路径. 我尝试了FreeFilesync,但它可以大批批量工作,并且在这里需要精确的文件操作.另外,它没有删除,我需要将文件从pendrive移出. 然而,引起我的兴趣的是发出像... 这样的废话命令 C:\> cd MYPENDRIVE: ...在默认错误消息中导致一个有趣的位: The filename, directory name, or volume label syntax is incorrect. ^^^^^^^^^^^^^^^^^^^ 如果要信任此消息,则意味着有一些正确的语法可以在其中放置音量标签.还是不是吗? 注意:如果需要的话,我可以安定为写一个小的" getDriveletterforvolume"工具,但我宁愿不重新发明轮子.另外,在
2 2023-12-06
编程技术问答社区
Docker for Windows : 卷是空的
我几周前从Windows 7更新到Windows:我使用Docker Toolbox/Virtual Box与Docker一起使用,并且建议使用Windows Docker(最新应用程序),但我很痛苦使它变得有效就像使用工具箱一样. 我使用HyperV和运行Docker Hello-World Works创建了docker机器. 但是,当涉及使用卷时,发生了一个奇怪的行为:没有错误消息,容器正常工作,但我的卷很空,我只有文件夹. 我曾经在共享驱动器方面遇到麻烦,但我设法使它起作用(通过docker for win gui). 这是我尝试运行容器但没有映射Windows文件(仅文件夹)的命令: docker run -ti -v文件夹/:数据/文件夹alpine 我正在运行Docker版本18.03.0-CE 有什么想法吗?如果我不清楚,请让我提供更多信息! thx 解决方案 首先确保您的驱动器已共享(请参见下图). 一个重要的请注意
0 2023-12-06
编程技术问答社区
Docker-cannot mount volume over existing file, file exists
我正在尝试在Docker中为我的应用程序构建数据容器.我运行此命令以暴露一些卷: docker run --name svenv.nl-data -v /etc/environment -v /etc/ssl/certs -v /var/lib/mysql -d svenv/svenv.nl-data 问题是我从此命令中获取此错误: Error response from daemon: cannot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/aefa66cf55357e2e1e4f84c2d4d2d03fa2375c8900fe3c0e1e6bc02f13e54d05/etc/environment 如果我正确理解Docker文档.支持为单个文件创建卷.所以我不明白为什么会遇到这个错误. 有人可以向我解释这个吗?我正在Ubuntu上运行Docker 1.9.1.
158 2023-11-02
编程技术问答社区
如何使用Java 8在docker容器卷中编写CSV文件?
我正在与Docker和文件系统挣扎.我想从我的Java应用程序中的Docker卷中写一个文件.主要目标是在同一台计算机上运行的另一个应用程序可以读取文件. 我阅读了相关的问题,但是我没有找到任何解决此问题的答案,可以使用Java应用程序解决此问题.关于如何执行此操作的任何想法? 解决方案 在您的另一个问题的答案上构建: 示例 因此,您有两个Docker容器需要共享文件系统?假设您的Java应用程序被化为容器,请使用它来创建一个持久的数据容器: $ docker create -v /data --name mydata mydockerimage 使用此数据容器运行容器化程序 $ docker run -it --rm --volumes-from mydata mydockerimage create "/data/myfile.csv" $ docker run -it --rm --volumes-from mydata mydockeri
10 2023-09-13
编程技术问答社区
在另一个硬盘上的另一个分区上的Docker命名卷
我的PC上有一个Docker容器.容器的主要功能是刮擦数据,这会累积0.3GB/天.在过去的30天中,我只需要这些数据,此后,我计划将其存储在硬盘驱动器上,以实现历史目的.但是,经过几个小时的试验和错误,我未能在另一个分区上创建一个docker卷,而 _data 文件夹总是出现在/var/var/lib/docker/polumes/ 文件夹,分区驱动器始终为空. 我还尝试使用 docker run -v 创建卷,但它仍然在主卷文件夹中创建卷. 操作系统是 pop!_OS 20.04 LTS 我将提供有关分区的数据: 解决方案 在码头卷的情况下,您无法控制Docker节省其量的位置.您所能做的就是仅更改Docker根目录.因此,最好将新分区安装在目录下,然后将Docker根目录更改为此安装点.这样,您就可以实现想要的东西.您还应该考虑,这样做,所有Docker数据都将存储在此新分区中. 用于更改docker root目录,您应该首先创建一个名为daemon
90 2023-06-30
编程技术问答社区
Docker运行挂载卷,但docker inspect显示卷为空
我的问题是关于我创建的Docker Run命令,该命令正在运行到完成并创建服务,但是它具有安装/音量问题.我正在运行以下命令: docker run -d --restart=unless-stopped --log-driver json-file --log-opt max-file="3" --log-opt max-size="15m" -m 2.875g --cpu-shares=230 --ulimit nofile=262144:262144 --ulimit memlock=-1:-1 --group-add="elasticsearch" --user="elasticsearch" --net="host" -p 192.168.56.103:9200:9200 -p 192.168.56.103:9300:9300 -v /var/qpackage/elasticsearch/repo:/usr/share/elasticsearch/repo:rw -v
20 2023-06-22
编程技术问答社区
Kubernetes on docker for windows, persistent volume with hostPath gives Operation not permitted
我试图将窗口中的文件夹连接到容器文件夹.这是针对需要在文件夹中读取文件的.NET应用程序.在带有Docker-Compose的普通Docker容器中,该应用程序无问题,但是由于这只是我们必须监视的几个不同应用程序之一,因此我们正在尝试让Kubernetes参与其中.这也是我们失败的地方. 作为Kubernetes的初学者,我使用Kompose.exe将撰写文件转换为Kuberetes样式.但是,无论我是使用hostpath还是使用persistentVolumeclaim作为标志,我都不会让事情"开箱即用".有了HostPath,这条路径非常不正确,并且在PersistentVolumeClaim上,我得到了警告,说主机上的音量安装不支持. 因此,我试图自己执行此部分,但可以使其能够使用持续的卷,也不可以直接输入部署文件中的安装数据. 我最接近的是我可以输入该文件夹,并且可以更改为子文件夹,但是一旦我尝试运行任何其他命令,无论是'ls'或'cat',我就会得到"不允许使用的操作" . 这
6 2023-06-14
编程技术问答社区
kubernetes部署将秘密挂载为一个文件夹而不是一个文件
我在Kubernetes中将配置文件作为秘密,我想将其安装到容器内部的特定位置中.问题在于,在容器中创建的卷是一个文件夹,而不是具有其中秘密内容的文件.有什么方法可以解决吗? 我的部署看起来像这样: kind: Deployment apiVersion: apps/v1 metadata: name: jetty namespace: default spec: replicas: 1 selector: matchLabels: app: jetty template: metadata: labels: app: jetty spec: containers: - name: jetty image: quay.io/user/jetty ports: - containerPort: 8080
26 2023-06-14
编程技术问答社区
用docker-compose删除一个命名的卷?
如果我有一个docker-compose文件,例如: version: "3" services: postgres: image: postgres:9.4 volumes: - db-data:/var/lib/db volumes: db-data: ...然后执行docker-compose up创建db-data的命名卷.有没有办法通过docker-compose删除此卷?如果它是匿名卷,那么docker-compose rm -v postgres就可以解决问题.但是就目前而言,我不知道如何在不恢复docker命令的情况下删除db-data卷.从docker-compose cli中,感觉应该可以.我想念什么吗? 解决方案 docker-compose down -v 除去附着的所有卷.请参阅其他解决方案 无法用docker-compose cli的特定音量来删除特定的音量.相反,可以使用docker CLI来实现这
10 2023-06-11
编程技术问答社区
检测一个卷是否被挂载在OS X上
我有一个OS X应用程序,需要响应安装或卸载的卷. 我已经通过定期检索卷列表并检查更改来解决此问题,但是我想知道是否有更好的方法. 解决方案 注册您从[[NSWorkspace sharedWorkspace] notificationCenter]获得的通知中心,然后处理您感兴趣的通知.这些是相关的通知:NSWorkspaceDidRenameVolumeNotification,NSWorkspaceDidMountNotification,NSWorkspaceWillUnmountNotification和NSWorkspaceDidUnmountNotification. 其他解决方案 NSWorkspace方法正是我正在寻找的东西.几行代码以后,我的解决方案比使用计时器要好得多. -(void) monitorVolumes { [[[NSWorkspace sharedWorkspace] notificationCenter] addO
22 2023-05-03
编程技术问答社区
Docker-Compose挂载卷会覆盖主机文件
我正在从CMS上安装一个带有内容文件的目录. 安装绝对有效. CMS收集了一些基本文件,这些文件在构建过程中被复制到容器中的已安装文件夹中.然后将其安装到主机上的目录.现在,来自容器的文件也在主机上.我可以更改它们,它们将保持同步. 如果我重新启动我的容器docker-compose stop && docker-compose up -d主机上的文件将被容器构建的默认文件覆盖. 是否有可能强制文件的本地状态覆盖容器中的文件? 善意 解决方案 也许尝试将其配置为仅读 docker run -v volume-name:/path/in/container:ro my/image 其他解决方案 您可以将其设置为仅读取为 gcoh 答案.请参阅以下内容以获取Docker-Compose: volumes: - type: bind source: ./host-source-folder target: /containe
10 2023-04-18
编程技术问答社区
Mac上的Docker Machine。在docker host/docker-machine上无法看到已安装的卷轴?卷的物理存储位置是什么?
上午在MacBook Pro笔记本电脑上和运行 docker-machine(0.5.0)和 docker-compose(1.5.0)让我的容器开始. 这意味着我正在使用Docker-Machine创建我的VirtualBox boot2Docker驱动的主机,该机器将运行我的Docker守护程序并主机所有容器. 我认为我对主机和音量的概念缺少一些关键的内容,因为它们指的是Docker和文档. 这是我的docker-compose.yml文件(Web只需构建php:5.6-apache Image): web: restart: "always" build: ./docker-containers/web ports: - "8080:80" volumes: - ./src:/var/www/html links: - mysql:mysql mysql: restart: "always" image: m
22 2023-04-08
编程技术问答社区
用Docker Compose将文件复制到容器中
我有一个Dockerfile,在其中我将现有目录(带有内容)复制到容器中,该目录正常: dockerfile FROM php:7.0-apache COPY Frontend/ /var/www/html/aw3somevideo/ COPY Frontend/ /var/www/html/ RUN ls -al /var/www/html RUN chown -R www-data:www-data /var/www/html RUN chmod -R 755 /var/www/html 但是,当我使用docker-compose.yml文件时,只有目录aw3somevideo,而内部aw3somevideo则没有. docker-compose.yml : php: build: php/ volumes: - ./Frontend/ :/var/www/html/ - ./Frontend/index.p
88 2023-03-31
编程技术问答社区
怎样才能只用docker-compose.yml来创建一个数据容器?
这个问题来自Docker的存储库上的一个问题: https://github.com/docker.com/docker/compose/compose/issues/942 我无法弄清楚如何使用Docker Compose创建数据容器(无过程运行). 解决方案 更新:过去几年发生了变化.请参阅@Frederik Wendt的答案,以获取一个好的和最新的解决方案. 我的旧答案:完全取决于您仅用于数据的图像.如果您的图像具有entrypoint,则需要在docker-compose.yml中覆盖它.例如,这是Docker Hub的官方MySQL图像的解决方案: DatabaseData: image: mysql:5.6.25 entrypoint: /bin/bash DatabaseServer: image: mysql:5.6.25 volumes_from: - DatabaseData environment:
20 2022-08-29
编程技术问答社区
Docker在挂载的卷中以root身份创建文件
我正在使用Docker(1.3.1)在容器中构建RPM: docker run -v /home/matt/build:/build build-rpm /build/build-pkg.sh 这可以正常工作(我的用户在docker组中,所以我不需要sudo),并且在当前目录中删除了完整的.rpm文件.问题是该文件是根据root拥有的. 如何安排它,以使文件是由我运行docker的同一用户拥有的? 解决方案 您可以尝试创建(在自定义图像的Dockerfile中)用户并将其设置为容器 使用的用户. RUN adduser --system --group --shell /bin/sh auser \ && mkdir /home/auser/bin USER auser 然后检查docker run -v /home/matt/build:/build build-rpm是否将共享文件夹安装在/build as auser中. 第2259期:
46 2022-08-28
编程技术问答社区
docker在主机上安装卷
我已经成功地在使用 的docker容器之间共享文件夹 docker run -v /host/path:/container/path ... ,但我的问题是此和使用dockerfile 中使用VOLUME命令之间的区别 VOLUME /path 我正在使用具有VOLUME命令的图像,我想知道如何与主机分享.我已经使用上面的-v命令完成了此操作,但是我不知道我是否同时需要-v和VOLUME. . 解决方案 VOLUME命令将在容器内安装一个目录,并将创建或编辑的任何文件存储在您的主机磁盘上,在容器文件结构之外,绕过Union File System . 的想法是,您的卷可以在您的Docker容器之间共享,只要有一个引用它们的容器(运行或停止),它们就会留在附近. 您可以通过运行容器时使用--volumes-from命令来安装其他容器(有效地在容器之间共享它们). VOLUME和-v之间的基本差异是:-v将在您的Docker容器内将现有文件安装在现有
42 2022-08-28
编程技术问答社区
当一个卷链接一个现有的填充的主机和容器dir时会发生什么?
我已经搜索了文档,但没有任何结果,所以有时间测试它.但是为了将来快速参考... 主机文件夹是否填充了容器文件夹内容? 是不是相反? 两个文件夹内容是否合并?(在这种情况下:当两个文件夹中都有同名文件时会发生什么?) 或者它会产生错误?该错误是在启动时引发的,还是在您尝试使用指向容器上现有填充文件夹的 VOLUME 构建映像时引发的? 另外,文档中没有的另一件事:我是否必须在 Dockerfile 中将容器路径定义为 VOLUME 以便在启动容器时使用 -v 来对付它,或者我可以动态创建卷吗? 解决方案 当你运行一个容器并从主机挂载一个卷时,你在容器中看到的只是主机上的内容 - 主机上的卷挂载点目录,所以如果图像中的目录中有任何内容,它就会被绕过. 使用此 Dockerfile 中的图像: FROM ubuntu WORKDIR /vol RUN touch /vol/from-container VOLUME /vol 当您在没有主机挂载
66 2022-08-25
编程技术问答社区