docker-compose运行
预计阅读时间:2分钟
Usage:
run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...]
SERVICE [COMMAND] [ARGS...]
Options:
-d, --detach Detached mode: Run container in the background, print
new container name.
--name NAME Assign a name to the container
--entrypoint CMD Override the entrypoint of the image.
-e KEY=VAL Set an environment variable (can be used multiple times)
-l, --label KEY=VAL Add or override a label (can be used multiple times)
-u, --user="" Run as specified username or uid
--no-deps Don't start linked services.
--rm Remove container after run. Ignored in detached mode.
-p, --publish=[] Publish a container's port(s) to the host
--service-ports Run command with the service's ports enabled and mapped
to the host.
--use-aliases Use the service's network aliases in the network(s) the
container connects to.
-v, --volume=[] Bind mount a volume (default [])
-T Disable pseudo-tty allocation. By default `docker-compose run`
allocates a TTY.
-w, --workdir="" Working directory inside the container
针对服务运行一次性命令。例如,以下命令启动web
服务并bash
作为其命令运行。
docker-compose run web bash
您与run
start一起使用的命令在新容器中启动,该容器具有由服务的配置定义的配置,包括卷,链接和其他详细信息。但是,有两个重要区别。
首先,传递的命令将run
覆盖服务配置中定义的命令。例如,如果 web
服务配置以开头bash
,则用docker-compose run web python app.py
覆盖它python app.py
。
第二个区别是该docker-compose run
命令不会创建服务配置中指定的任何端口。这样可以防止端口与已经打开的端口发生冲突。如果确实要创建服务的端口并将其映射到主机,请指定--service-ports
标志:
docker-compose run --service-ports web python manage.py shell
另外,也可以使用--publish
或-p
选项指定手动端口映射,就像使用时一样docker run
:
docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
如果启动使用链接配置的服务,则该run
命令首先检查链接服务是否正在运行,如果停止,则启动该服务。一旦所有链接的服务都在运行,则run
exec将执行您传递的命令。例如,您可以运行:
docker-compose run db psql -h db -U docker
这将为链接的db
容器打开一个交互式PostgreSQL shell 。
如果您不希望run
命令启动链接的容器,请使用--no-deps
标志:
docker-compose run --no-deps web python manage.py shell
如果要在覆盖容器的重新启动策略的情况下运行后除去该容器,请使用--rm
标志:
docker-compose run --rm web python manage.py db upgrade
这将运行数据库升级脚本,并在完成运行后删除容器,即使在服务配置中指定了重新启动策略也是如此。
无花果,组成,撰写,码头工人,编排,cli,运行