保存docker容器设置,如端口映射和卷

时间:2016-08-12 10:38:44

标签: docker dockerfile

我是Docker的新手。我的docker repo中有我的Image: my docker image

我以这种方式从图像创建一个容器: my docker container

如何保存我的docker run参数以备将来使用,而无需在我的图像中创建任何容器时写入它们? Dockerfile是解决方案吗? (我从未使用过Dockerfile。)

PS:有一种方法可以“挤压”我的falongi / pyload图像的中间图像(没有名字)吗?

由于 F。

2 个答案:

答案 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层设计,即使您运行多个引用该图像的容器,它也只在文件系统上存在一次。