Docker Compose:避免重新创建数据容器

Fal*_*CAM 3 docker docker-compose

为了更新一些图像,我使用了“docker-compose pull”。然后我构建:'docker-compose build'。

我只想更新应用程序容器,所以我删除了它并重新启动:“docker-compose rm app”和“docker-compose up -d app”。

但是发生了一些不希望的事情。数据容器也被重新创建。旧数据丢失。

用于数据容器的 Dockerfile:

FROM gitlab/gitlab-ce:latest
VOLUME ["/etc/gitlab", "/var/log/gitlab", "/var/opt/gitlab"]
ENTRYPOINT ["hostname"]
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: '2'
services:
 gitlab:
  image: 'gitlab/gitlab-ce:latest'
  domainname: example.com
  hostname: gitlab
  networks:
   - devenv
  restart: always
  environment:
   GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://gitlab.example.com'
    gitlab_rails['gitlab_shell_ssh_port'] = 2224
  ports:
   - '80:80'
   - '2224:22'
  volumes_from:
   - gitlabdata

 gitlabdata:
  build: gitlab-data
Run Code Online (Sandbox Code Playgroud)

下次我怎样才能避免这种情况?

nes*_*uno 5

docker-compose up命令具有--no-recreate标志。如果容器已经存在,则此标志避免重新创建容器。

因此你可以运行

docker-compose up -d --no-recreate app
Run Code Online (Sandbox Code Playgroud)