Home > Enterprise >  Remove Gitlab docker containers
Remove Gitlab docker containers

Time:02-09

Recently i tried to install Gitlab on Ubuntu machine using docker and docker-compose. This was only done for testing so i can later install it on other machine.

However, i have a problem with removing/deleting gitlab containers.

I tried docker-compose down and killing all processes related to gitlab containers but they keep restarting even if i somehow manage to delete images.

This is my docker-compose.yml file

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

Some of the commands i tried to kill processes:

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}')

I also tried to update containers with no restart policy:

docker update --restart=no container-id

But nothing of this seems to work.

This is docker ps response:

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

Any ideas of what i should be looking for?

CodePudding user response:

The gitlab-runner: alpine is referenced this way in your docker compose file

  gitlab-runner:
    image: gitlab/gitlab-runner:alpine
    deploy:
      mode: replicated
      replicas: 4

What I understand, is that here you declare that 4 replicas should be up so that's maybe why it always restarts?

Try removing from the docker compose file

    deploy:
      mode: replicated
      replicas: 4

And redo the procedure

CodePudding user response:

I found the solution. Problem was that i didn't use

docker-compose up -d

to start my containers. Instead i used

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

as it is written in documentation.

Since i didn't know much about docker stack, i did a quick internet search. This is the article that i found: 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.

As i understand, the problem is that stack only uses pre-built images and ignores some of the docker-compose commands such as restart policy. That's why

docker update --restart=no container-id

didn't work.

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.

  •  Tags:  
  • Related