docker - 是否可以使用不同的参数多次运行docker容器?

标签 docker

我是Docker的新手,我试图弄清楚是否可以使用不同的参数多次运行应用程序。
我使用.Net开发了应用程序,到目前为止,我已经使用Ubuntu服务执行了所有实例,例如:

[Unit]
Description=swp %I

[Service]
Environment=ENV=PRODUCTION
Type=simple
User=foo
ExecStart=/usr/bin/dotnet /opt/swp/app.dll %i
WorkingDirectory=/opt/app
Restart=always
RestartSec=5
其中%I是启动服务时传递的参数,例如:
sudo systemctl start app@argument1.service
sudo systemctl start app@argument2.service
sudo systemctl start app@argument3.service
因此,根据提供的参数,我有三个应用程序实例,它们以不同的逻辑运行。
如何使用Docker复制相同内容?

最佳答案

使用docker完全可以做到这一点。您必须采取的第一步是从使用命令行参数到接受环境变量来修改您的应用程序。在此docker provides an easy method of using environment variables之后。
Docker运行
例如,您可以使用“环境”键在服务的容器中设置环境变量,就像docker run -e VARIABLE = VALUE一样

docker run -e DEBUG=1 web python console.py
ENV_FILE
或者,您可以使用一个env文件。下面的示例显示一个env_file,将NODE_ENV环境变量设置为'test'
$ cat ./Docker/api/api.env
NODE_ENV=test
Docker撰写
就像docker run -e一样,您可以使用docker-compose run -e在一次性容器上设置环境变量
docker-compose run -e DEBUG=1 web python console.py
您也可以查看this question了解更多示例。
如果不可能或不太方便地修改程序以接受环境变量,则可以轻松地通过ARG in your dockerfile来修改CMD在启动时的运行方式。

关于docker - 是否可以使用不同的参数多次运行docker容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64035402/

相关文章:

docker - 如何使用 docker-machine 自定义 virtualbox 配置?

ssl - Docker 注册表登录失败并显示 "Certificate signed by unknown authority"

docker - 在composer中将主机名更改为docker可解析的主机名

bash - Docker 断开所有容器与 docker 网络的连接

docker - 支持多环境的 SSL/TLS 私钥链

mongodb - 尝试通过Docker Compose将NodeJS应用连接到MongoDB

windows - Docker 卡在 "Waiting for SSH to be available..."

docker - 单个容器与多个容器

curl - 对 docker 后面的 keycloak 的 token 请求,curl 有效,reactjs 无效

google-chrome - 我的容器化 Puppeteer 如何与我的主机 Chrome 通信?