Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向Docker容器路径添加自定义二进制文件

向Docker容器路径添加自定义二进制文件
EN

Stack Overflow用户
提问于 2017-12-14 09:17:04
回答 1查看 9.4K关注 0票数 1

我想在我的一个容器中添加一个自定义二进制可执行文件。我在我的机器上做的,我想把它加进去。首先,我考虑将某些目录挂载为/tmp/foo,然后将其复制到/usr/bin/。不是很好,但应该能行。为此,我在docker-compose.yml中定义了以下卷安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
volumes:
  - ./var/bin/:/tmp/bin/

Dockerfile中的以下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RUN ls /tmp/bin

RUN cp /tmp/bin/wkhtmltoimage /usr/local/bin/ && cp /tmp/bin/wkhtmltopdf /usr/local/bin/

如您所见,我已经添加了列表目录,以检查是否存在任何内容,并且我得到了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls: cannot access /tmp/bin: No such file or directory
ERROR: Service 'web' failed to build: The command '/bin/sh -c ls /tmp/bin' returned a non-zero code: 2

现在,这里有两个问题:

  1. 为什么这个目录在容器的命令行中不可见?其他坐骑也可用..。
  2. 我怎样才能“适当”达到这个目标呢?这样,在映像构建期间,二进制文件就会被复制/设置一次,而不需要在每个容器上运行映射?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-14 10:17:30

为什么这个目录在容器的命令行中不可见?其他坐骑也可用..。

因为在构建容器时没有安装绑定挂载卷。您正在使用docker-compose.yml在运行时挂载卷,类似于

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -v $(pwd)/var/tmp:/tmp/bin myimage/myimage

但是您正在尝试在构建过程中访问/tmp/bin,而不是在docker装载卷之前。

我怎样才能“适当”达到这个目标呢?这样,在映像构建期间,二进制文件就会被复制/设置一次,而不需要在每个容器上运行映射?

将从Dockerfile提供的两个运行命令替换为一对ADD命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ADD ./var/bin/wkhtmltopdf /usr/local/bin
ADD ./var/bin/wkhtmltoimage /usr/local/bin

这将从您的主机获取文件,并将它们直接放在图像中。这是做你想做的事的正确方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47818862

复制
相关文章
Docker 添加容器SSH服务
很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等.
微软技术分享
2022/12/28
1.6K0
Docker容器日志路径及如何收集
如果深究其日志位置,每个容器的日志默认都会以 json-file 的格式存储于 /var/lib/docker/containers/<容器id>/<容器id>-json.log 下,不过并不建议去这里直接读取内容,因为 Docker 提供了更完善地日志收集方式 - Docker 日志收集驱动。
星哥玩云
2022/07/13
2.2K0
pycharm配置路径_pycharm添加运行文件路径
步骤二: settings for New projects–>project Interpreter–>show All–>Add
全栈程序员站长
2022/09/25
2.1K0
pycharm配置路径_pycharm添加运行文件路径
自定义docker容器网络
1.通过bridge 驱动创建类似前面默认的 bridge 网络: docker network create --driver bridge my_net 如果没有指定网段默认为172.18.0.0/16:
@凌晨
2020/05/28
1K0
docker容器添加对外映射端口
在容器首次启动是,可通过-p参数(-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如:
程序新视界
2023/09/09
2.5K0
Docker容器修改host文件
但发现容器重启后, host 文件就被恢复了,那么如何对正在运行的容器,永久指向 host 呢,答案是可以的
子润先生
2021/06/23
2.5K0
Docker容器修改host文件
但发现容器重启后, host 文件就被恢复了,那么如何对正在运行的容器,永久指向 host 呢,答案是可以的
Petrochor
2022/06/07
1.4K0
Windows添加右键菜单,复制文件路径
在开发过程中经常需要复制文件的路径,以前都要先复制文件夹路径,再拼接上文件名称,特别麻烦。
码客说
2023/04/27
1.6K0
Docker入门及自定义容器
Linux Containers Linux容器 缩写LXC,其对进程进行隔离,而非一个完整的操作系统。Docker属于LXC的一种封装,提供简单易用的容器使用接口。Docker主要用于提供一次性环境、提供 弹性的云服务、组件微服务架构。
用户2987604
2020/06/15
1.5K0
Docker 添加容器到一个网络
通过网络,在默认情况下为容器提供了完全独立的环境。在你第一次运行一个容器的时候,你可以将容器添加到一个网络中。
HoneyMoose
2020/12/02
1.6K0
Docker 添加容器到一个网络
docker 修改镜像和容器的存放路径 原
此方法,启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。
拓荒者
2019/03/11
2.6K0
在 Docker 容器中编辑文件
我希望每次在docker容器中安装vi的时候谁会给我1美元...我想要一个在运行的docker容器编辑文件的更简单的方式。首先,尝试避免编辑文件,这违背了容器的哲学理念(见最后一段)。
星哥玩云
2022/07/03
5.5K0
在 Docker 容器中编辑文件
docker容器修改配置文件
2.修改配置文件 hostconfig.json(修改前先 systemctl stop docker关闭Docker服务)
@凌晨
2022/01/12
3.9K0
docker容器修改配置文件
复制文件到Docker容器内
举例说明: 假设一个运行的容器ID为9a28f199688e,想要将本地文件/path/to/local-file 复制到容器中的 /path/to/destination 目录中。
程序新视界
2023/09/07
9260
向mysql配置文件中添加日志配置
socket = usr/local/lnmp/mysql-5.7.21/mysql.sock
93年的老男孩
2019/12/18
3K0
docker安装Redis_docker redis配置文件路径
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
7.4K0
docker安装Redis_docker redis配置文件路径
关于docker容器启动后修改或添加端口
docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况。当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。
互联网-小阿宇
2022/11/21
4.6K0
关于docker容器启动后修改或添加端口
使用Solr向您的站点添加自定义搜索
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
新巴子
2018/08/16
1.2K0
spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F
菩提树下的杨过
2018/01/18
5.2K0
spring:如何用代码动态向容器中添加或移除Bean ?
关于docker容器启动后修改或添加端口
docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况。当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。
全栈程序员站长
2021/06/10
29.2K0
关于docker容器启动后修改或添加端口

相似问题

如何向docker容器添加动态文件

32

从Dockerfile向docker容器添加主机文件

10

将Miniconda二进制文件添加到Docker容器中的路径

222

如何向Docker容器添加用户?

51.5K

试图向Docker容器添加libxslt

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文