首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Docker构建过程中看起来完美安装的程序并不存在于运行容器中

在Docker构建过程中看起来完美安装的程序并不存在于运行容器中
EN

Stack Overflow用户
提问于 2017-12-10 01:28:57
回答 1查看 135关注 0票数 0

我有一个dockerfile,似乎可以成功安装各种程序。

例如,我在这里安装sfdx-cli:

代码语言:javascript
代码运行次数:0
运行
复制
RUN wget -O - https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz  | tar Jxv &&     sfdx/install &&     rm -rf sfdx

我知道它是成功的,因为后面的一行会导致它自我更新。

下面是我安装apt-transport-https的另一个例子:

代码语言:javascript
代码运行次数:0
运行
复制
RUN apt-get install -y apt-transport-https

我知道这行得通,因为下一行安装了heroku,它依赖于apt-transport-https:

代码语言:javascript
代码运行次数:0
运行
复制
RUN apt-get update && apt-get install -y heroku

但是,当我基于此镜像运行容器时,sfdx-cli和apt-transport-https都不存在。我已经使用"find /“命令进行了搜索,但在任何地方都找不到它们,更不用说在它们预期的位置了。

一般来说,容器运行得很好,有许多程序可以运行。例如,"heroku“命令工作得很好。

我显然遗漏了一些关于docker工作方式的基本信息,但我在网上找不到任何关于这方面的信息。

下面是当前的Dockerfile文件:https://gist.github.com/alexed1/ad4917f53bed34318e1aa2801a82e911

下面是我的build命令:

代码语言:javascript
代码运行次数:0
运行
复制
docker build . -t alexed1:dev5

下面是我的run命令:

代码语言:javascript
代码运行次数:0
运行
复制
docker run -it -v /Users/aedelstein/Dropbox/dev:/home/alexed/dev \
   -p 8000:8000 -p 5000:5000 -p 80:80 -p 1717:1717 alexed1/dev5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-10 06:41:14

镜像名称由两个组件repository和一个:tag组成。如果未指定:tag,则默认为:latest

正在运行的容器正在使用镜像alexed1/dev5。这等同于标记alexed1/dev5:latest

正在构建的映像是不同的,并且正在标记为alexed1:dev5

要运行构建的映像,请使用

代码语言:javascript
代码运行次数:0
运行
复制
docker run -it -v /Users/aedelstein/Dropbox/dev:/home/alexed/dev \
  -p 8000:8000 -p 5000:5000 -p 80:80 -p 1717:1717 alexed1:dev5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47731210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档