删除 Gitlab docker 个容器

Remove Gitlab docker containers

最近我尝试使用 docker 和 docker-compose 在 Ubuntu 机器上安装 Gitlab。这只是为了测试,所以我可以稍后将它安装在其他机器上。

但是,我对 removing/deleting gitlab 容器有疑问。

我尝试 docker-compose down 并杀死与 gitlab 容器相关的所有进程,但即使我以某种方式设法删除图像,它们也会继续重启。

这是我的docker-compose.yml文件

version: "3.6"
    services:
      gitlab:
        image: gitlab/gitlab-ee:latest
        ports:
          - "2222:22"
          - "8080:80"
          - "8081:443"
        volumes:
          - $GITLAB_HOME/data:/var/opt/gitlab
          - $GITLAB_HOME/logs:/var/log/gitlab
          - $GITLAB_HOME/config:/etc/gitlab
        shm_size: '256m'
        environment:
          GITLAB_OMNIBUS_CONFIG: "from_file('/omnibus_config.rb')"
        configs:
          - source: gitlab
            target: /omnibus_config.rb
        secrets:
          - gitlab_root_password
      gitlab-runner:
        image: gitlab/gitlab-runner:alpine
        deploy:
          mode: replicated
          replicas: 4
    configs:
      gitlab:
        file: ./gitlab.rb
    secrets:
      gitlab_root_password:
        file: ./root_password.txt

我尝试终止进程的一些命令:

kill -9 $(ps aux | grep gitlab | awk '{print }')
docker rm -f $(docker ps -aqf name="gitlab") && docker rmi --force $(docker images | grep gitlab | awk '{print }')

我还尝试更新没有重启策略的容器:

docker update --restart=no container-id

但这一切似乎都不起作用。

这是dockerps回复:

591e43a3a8f8   gitlab/gitlab-ee:latest       "/assets/wrapper"        4 minutes ago    Up 4 minutes (health: starting)   22/tcp, 80/tcp, 443/tcp                           mystack_gitlab.1.0r77ff84c9iksmdg6apakq9yr
6f0887a8c4b1   gitlab/gitlab-runner:alpine   "/usr/bin/dumb-init …"   16 minutes ago   Up 16 minutes                                                                       mystack_gitlab-runner.3.639u8ht9vt01r08fegclfyrr8
73febb9bb8ce   gitlab/gitlab-runner:alpine   "/usr/bin/dumb-init …"   16 minutes ago   Up 16 minutes                                                                       mystack_gitlab-runner.4.m1z1ntoewtf3ipa6hap01mn0n
53f63187dae4   gitlab/gitlab-runner:alpine   "/usr/bin/dumb-init …"   16 minutes ago   Up 16 minutes                                                                       mystack_gitlab-runner.2.9vo9pojtwveyaqo166ndp1wja
0bc954c9b761   gitlab/gitlab-runner:alpine   "/usr/bin/dumb-init …"   16 minutes ago   Up 16 minutes                                                                       mystack_gitlab-runner.1.pq0njz94v272s8if3iypvtdqo

关于我应该寻找什么的任何想法?

我找到了解决方案。问题是我没有使用

docker-compose up -d

启动我的容器。相反,我使用了

docker stack deploy --compose-file docker-compose.yml mystack

如文档中所写。

由于我对 docker 堆栈了解不多,所以我进行了快速的互联网搜索。 这是我找到的文章: https://vsupalov.com/difference-docker-compose-and-docker-stack/

The Difference Docker stack is ignoring “build” instructions. You can’t build new images using the stack commands. It need pre-built images to exist. So docker-compose is better suited for development scenarios.

There are also parts of the compose-file specification which are ignored by docker-compose or the stack commands.

据我了解,问题在于堆栈仅使用 pre-built 图像并忽略了一些 docker-compose 命令,例如重启策略。 这就是为什么

docker update --restart=no container-id

没用。

我仍然不明白为什么终止所有进程并删除 containers/images 不起作用。我想肯定有一些我没有找到的父进程。