如何保留 运行 Docker 图像所用选项的副本?

How do I keep a copy of the options I use to run an image in Docker?

我刚刚想出了如何使用以下命令让 swagger-ui 和 运行 Docker 使用我自己的 openapi.json 文件:

docker run -p 80:8080 -e SWAGGER_JSON=/foo/openapi.json -v ~/source:/foo swaggerapi/swagger-ui

openapi.json 文件在源代码管理中,这在很多地方可能是 运行。

除了将其放入 README 之外,还有什么方法可以使该命令易于重新运行?我可以为此使用 Docker 文件吗?或者我可以使用 docker-compose 吗?最重要的部分只是为了让它变得简单,然后在后面让它变得容易 change/add 选项。

我也知道我可以使用我可以更改的 bash 脚本,但我想知道是否有任何 Docker 方法可以做到这一点,而不是 hack。

我更喜欢使用 docker-compose 进行更复杂的运行,以将所有选项保留在 yaml 文件中。那么启动容器所需要做的就是docker-compose up。 对于应用程序内部的更多选项,您可以使用 .env 文件。

我认为这是制作容器的最清晰的方法运行,并且不需要任何关于此环境的下一个users/developers的知识。

docker-compose 是您的完美解决方案:

//docker-compose.yml

version: '3.7'
services:
  swagger:
    image: swaggerapi/swagger-ui
    ports:
      - "80:8080"
    environment:
      - SWAGGER_JSON=/foo/openapi.json
    volumes:
      - "~/source:/foo "

到运行它,只需点击docker-compose up就可以了