Как рестартануть контейнер с обновленным образом?
В файле docker-compose.yml есть следующая запись:
...
mkvworker:
image: название образа в нашем регистре (какого-то специфичного)
// какого-то специфичного тэга у образа нет, но образ был перезалит
...
Кроме данного сервиса запущено еще некоторое количество других сервисов, которые не следует останавливать.
Как можно рестартануть mkvworker, не останавливая другие сервисы, чтобы образ использовался не из кэша а спулился актуальный?
Заранее благодарен.
Ответы (1 шт):
Сначала явным образом pull'ишь образ для сервиса командой
docker-compose pull mkvworker
Если не указавать сервис (mkvworker), то он подтянет обновленные версии образов для всех сервисов из данного docker-compose.yml.
После перезапускашь
docker-compose up -d --no-deps mkvworker
Теперь небольшая выдержка из документации
$ docker-compose up --help
Builds, (re)creates, starts, and attaches to containers for a service.
Unless they are already running, this command also starts any linked services.
The `docker-compose up` command aggregates the output of each container. When
the command exits, all containers are stopped. Running `docker-compose up -d`
starts the containers in the background and leaves them running.
If there are existing containers for a service, and the service's configuration
or image was changed after the container's creation, `docker-compose up` picks
up the changes by stopping and recreating the containers (preserving mounted
volumes). To prevent Compose from picking up changes, use the `--no-recreate`
flag.
If you want to force Compose to stop and recreate all containers, use the
`--force-recreate` flag.
Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
Options:
-d, --detach Detached mode: Run containers in the background,
print new container names. Incompatible with
--abort-on-container-exit.
--no-color Produce monochrome output.
--quiet-pull Pull without printing progress information
--no-deps Don't start linked services.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
--always-recreate-deps Recreate dependent containers.
Incompatible with --no-recreate.
--no-recreate If containers already exist, don't recreate
them. Incompatible with --force-recreate and -V.
--no-build Don't build an image, even if it's missing.
--no-start Don't start the services after creating them.
--build Build images before starting containers.
--abort-on-container-exit Stops all containers if any container was
stopped. Incompatible with -d.
--attach-dependencies Attach to dependent containers
-t, --timeout TIMEOUT Use this timeout in seconds for container
shutdown when attached or when containers are
already running. (default: 10)
-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving
data from the previous containers.
--remove-orphans Remove containers for services not defined
in the Compose file.
--exit-code-from SERVICE Return the exit code of the selected service
container. Implies --abort-on-container-exit.
--scale SERVICE=NUM Scale SERVICE to NUM instances. Overrides the
`scale` setting in the Compose file if present.
Тут нас интересует секция:
If there are existing containers for a service, and the service's configuration or image was changed after the container's creation,
docker-compose uppicks up the changes by stopping and recreating the containers (preserving mounted volumes). To prevent Compose from picking up changes, use the--no-recreateflag.
По-русски говоря up пересоздаст контейнер из более-свежего образа, если таковой имеется, и не указана опция --no-recreate, которая отключает описанное пересоздание.
P.S. У образа всегда есть тэг, но если он не указан явно, то считается равным latest.