我是Docker的新手。我的docker repo中有我的Image:
如何保存我的docker run参数以备将来使用,而无需在我的图像中创建任何容器时写入它们? Dockerfile是解决方案吗? (我从未使用过Dockerfile。)
PS:有一种方法可以“挤压”我的falongi / pyload图像的中间图像(没有名字)吗?
由于 F。
答案 0 :(得分:1)
您可以编写docker-compose.yaml文件来定义容器的启动。您可以在其中描述参数并使用一个命令启动容器(带参数):docker-compose up -d
你的.yaml文件会包含类似的东西(没有测试!!)
version: '2'
services:
pyload-service:
image: falongi/pyload:latest
container_name: pyload
volumes:
- /mnt/rf/xxx:/mnt/mybooklive
ports:
- "8100:8000"
您可以使用:docker-compose up -d
启动它。
使用docker-compose,您可以同时部署多个容器。您还可以定义要使用的Dockerfile,而不是自己构建映像。
比你在dockerfile中需要这样的东西:
build: ./path/to/dockerfile
documentation可能很有用。
编辑:
执行docker images -a
时,您将看到父图像及其子图层。有关详细信息,请参阅此document
答案 1 :(得分:1)
关于你的PS(lorenzvth7涵盖了标题问题的docker-compose.yml):
您看到的图像是使用union文件系统构建的每个图层。要减少层数,需要最小化Dockerfile中的命令数。这意味着使用与RUN
相关联的单个&&
命令,并在每行末尾使用\
拆分长行。
这些图层对于Docker中的缓存非常重要。您可以拥有多个图像使用的单个基础图层。该基础层只会下载一次,并且通过联合文件系统的RO层设计,即使您运行多个引用该图像的容器,它也只在文件系统上存在一次。