草庐IT

blog_dockerfile

全部标签

docker - 多个镜像,一个 Dockerfile

如何在一个Dockerfile中创建两个镜像,它们只复制不同的文件。这不应该产生两个图像img1和img2,而是产生两个未命名的图像d00a6fc336b3和a88fbba7eedeDockerfile:FROMalpineasimg1COPYfile1.txt.FROMalpineasimg2COPYfile2.txt.这是dockerbuild的结果。REPOSITORYTAGIMAGEIDCREATEDSIZEd00a6fc336b34secondsago4.15MBa88fbba7eede5secondsago4.15MBalpinelatest3fd9065eaf023mon

docker - 多个镜像,一个 Dockerfile

如何在一个Dockerfile中创建两个镜像,它们只复制不同的文件。这不应该产生两个图像img1和img2,而是产生两个未命名的图像d00a6fc336b3和a88fbba7eedeDockerfile:FROMalpineasimg1COPYfile1.txt.FROMalpineasimg2COPYfile2.txt.这是dockerbuild的结果。REPOSITORYTAGIMAGEIDCREATEDSIZEd00a6fc336b34secondsago4.15MBa88fbba7eede5secondsago4.15MBalpinelatest3fd9065eaf023mon

bash - 如何在 Dockerfile 中运行 bash 函数

我在/root/.profile中定义了一个bash函数nvm。当我在RUN步骤中调用该函数时,dockerbuild找不到该函数。RUNapt-getinstall-ycurlbuild-essentiallibssl-dev&&\curlhttps://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh|shRUNnvminstall0.12&&\nvmaliasdefault0.12&&\nvmuse0.12错误是Step5:RUNnvminstall0.12--->Runninginb639c2bf60c0/b

bash - 如何在 Dockerfile 中运行 bash 函数

我在/root/.profile中定义了一个bash函数nvm。当我在RUN步骤中调用该函数时,dockerbuild找不到该函数。RUNapt-getinstall-ycurlbuild-essentiallibssl-dev&&\curlhttps://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh|shRUNnvminstall0.12&&\nvmaliasdefault0.12&&\nvmuse0.12错误是Step5:RUNnvminstall0.12--->Runninginb639c2bf60c0/b

docker - 使用单个 CMD 在 Dockerfile 上定义多个服务

假设我有命令:rails服务器和bundleexecsomething:default我知道我的Dockerfile只能有1个CMD行,所以可以这样做:CMD["sh","-c","railserver&&bundleexecsomething:default"]因为它只是这两个命令,我不想复制一个script.sh然后使用它(希望有一个简单的1行方式)。在一个容器中运行2个服务时,我应该注意什么最佳做法? 最佳答案 最佳做法是在每个容器中运行一个服务,但这并不总是可行的。我运行CMD["sh","-c","/usr/sbin/cr

docker - 使用单个 CMD 在 Dockerfile 上定义多个服务

假设我有命令:rails服务器和bundleexecsomething:default我知道我的Dockerfile只能有1个CMD行,所以可以这样做:CMD["sh","-c","railserver&&bundleexecsomething:default"]因为它只是这两个命令,我不想复制一个script.sh然后使用它(希望有一个简单的1行方式)。在一个容器中运行2个服务时,我应该注意什么最佳做法? 最佳答案 最佳做法是在每个容器中运行一个服务,但这并不总是可行的。我运行CMD["sh","-c","/usr/sbin/cr

docker - Dockerfiles 中的多行注释

有没有快速注释掉Dockerfile中的多行的方法?我知道我可以在每一行的开头添加#。但是如果有很多行,这工作量就太大了。在某些语言中,有诸如/*...*/之类的多行注释,这使得注释掉文件的大部分内容非常快。 最佳答案 截至今天,没有。根据Dockerfilereference文档:Dockertreatslinesthatbeginwith#asacomment,unlessthelineisavalidparserdirective.A#markeranywhereelseinalineistreatedasanargument

docker - Dockerfiles 中的多行注释

有没有快速注释掉Dockerfile中的多行的方法?我知道我可以在每一行的开头添加#。但是如果有很多行,这工作量就太大了。在某些语言中,有诸如/*...*/之类的多行注释,这使得注释掉文件的大部分内容非常快。 最佳答案 截至今天,没有。根据Dockerfilereference文档:Dockertreatslinesthatbeginwith#asacomment,unlessthelineisavalidparserdirective.A#markeranywhereelseinalineistreatedasanargument

docker - 从 Dockerfile 写入 docker 卷不起作用

请考虑以下Dockerfile:FROMphusion/baseimageVOLUME["/data"]RUNtouch/data/HELLORUNls-ls/data问题:“/data”目录不包含“HELLO”文件。此外,任何其他写入卷目录的尝试(通过echo、mv、cp、...)均不成功-目录始终为空。没有显示错误消息。我在文档或stackoverflow上找不到关于此问题的任何内容。这是众所周知的还是新事物?docker版本返回:Clientversion:1.2.0ClientAPIversion:1.14Goversion(client):go1.3.1Gitcommit(c

docker - 从 Dockerfile 写入 docker 卷不起作用

请考虑以下Dockerfile:FROMphusion/baseimageVOLUME["/data"]RUNtouch/data/HELLORUNls-ls/data问题:“/data”目录不包含“HELLO”文件。此外,任何其他写入卷目录的尝试(通过echo、mv、cp、...)均不成功-目录始终为空。没有显示错误消息。我在文档或stackoverflow上找不到关于此问题的任何内容。这是众所周知的还是新事物?docker版本返回:Clientversion:1.2.0ClientAPIversion:1.14Goversion(client):go1.3.1Gitcommit(c