1

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

但是,我在删除/删除 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 $2}')
docker rm -f $(docker ps -aqf name="gitlab") && docker rmi --force $(docker images | grep gitlab | awk '{print $3}')

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

docker update --restart=no container-id

但这似乎没有任何作用。

这是 docker ps 响应:

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

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

4

1 回答 1

0

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

docker-compose up -d

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

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

正如它在文档中所写的那样。

由于我对 docker stack 了解不多,因此我进行了快速的互联网搜索。这是我发现的文章: https ://vsupalov.com/difference-docker-compose-and-docker-stack/

差异 Docker 堆栈忽略了“构建”指令。您无法使用 stack 命令构建新图像。它需要预先构建的图像才能存在。所以 docker-compose 更适合开发场景。

compose-file 规范的某些部分也被 docker-compose 或 stack 命令忽略。

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

docker update --restart=no container-id

没用。

I still don't understand why killing all the processes and removing containers/images didn't work. I guess there must be some parent process that i didn't found.

于 2022-02-08T15:07:41.583 回答