Ubuntu에 Docker를 설치하는 것은 매우 간단합니다. Docker 저장소를 활성화하고 저장소 GPG 키를 가져온 후 패키지를 설치합니다.
$ sudo apt update
// 새 HTTPS 리포지토리를 추가하는 데 필요한 종속성을 설치
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
// 리포지토리의 GPG 키를 가져옴
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
// Docker APT 리포지토리를 시스템에 추가
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
// 최신 버전의 도커를 설치
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
// 특정 Docker 버전을 설치
$ apt list -a docker-ce
$ sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
// 설치가 완료되면 도커 서비스가 자동으로 시작
$ sudo systemctl status docker
# ● docker.service - Docker Application Container Engine
# Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
# Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago
# ...
//도커 패키지가 업데이트되지 않도록 하려면 보류로 표시
$ sudo apt-mark hold docker-ce
// root외 유저에 도커 권한 부여
$ sudo usermod -aG docker $USER
// 설치 확인
$ docker container run hello-world
or
$ sudo docker version
docker 설치 참고
https://jjeongil.tistory.com/1968
https://dongle94.github.io/docker/docker-ubuntu-install/
gitlab-runner를 docker와 사용하려면 docker 설치 필요!
$ su - root
$ curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
$ sudo apt install gitlab-runner
$ sudo gitlab-runner register
Q: Enter the GitLab instance URL (for example, https://gitlab.com/): (GitLab URL 입력하기)
I: https://gitlab.com/ (위에서 확인한 URL 카피하여 복사)
Q: Enter the registration token: (GitLab Repository Token 입력하기)
I: ~~~~CA~~~~ (위에서 확인한 token 카피하여 복사)
Q: Enter a description for the runner: (Runner Description 입력하기)
I: ex) GitLab Runner Test
Q: Enter tags for the runner (comma-separated): (태그 입력하기, 여기서 입력된 태그는 gitlab-ci.yml파일에서 등록된 runner를 구분하기 위해 사용)
I: ex) dev-all
Q: Enter an executor: docker-ssh+machine, custom, parallels, shell, virtualbox, docker+machine, docker, docker-ssh, ssh, kubernetes: (빌드에 사용되는 executor 선택)
I: ex) docker
Q: Enter the default Docker image (for example, ruby:2.6): (Docker image default 입력)
I: docker:20.10.12 (위에서 확인한 docker 버전 입력)
or docker:latest
// runner 연결 확인
$ gitlab-runner list
// Docker를 사용해서 배포하는 경우
$ sudo usermod -aG docker gitlab-runner
// GitLab CI에 작성된 docker 명령어들은 모두 dind로 수행
// runner의 설정에 다음의 값들을 수정 및 추가해줘야 함
$ vi /etc/gitlab-runner/config.toml
...
[[runners]]
[runners.docker]
privileged = true
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
network_mode = "host"
pull_policy = ["always"]
...
:wq //저장 후 나감
$ service docker restart // 도커 재시작
gitlab-runner 설치 참고
https://yscho03.tistory.com/m/133
https://jforj.tistory.com/227