Ubuntu에 Docker 엔진 설치(with WSL2)

개발자·2022년 8월 30일
0

설치 방법

패키지에서 설치, 편의 스크립트를 사용한 설치 등 다양한 방법이 있지만 저장소를 설정하고 이 저장소에 설치하는 방법을 이용해보자. 이 방법이 가장 권장되는 방식이다.

이전 버전 제거

기존에 설치된 Docker가 있는 경우 제거해준다.

$ sudo apt-get remove docker docker-engine docker.io containerd runc

저장소 설정

새 호스트 머신에 Docker 엔진을 설치하기 전에 저장소를 설정해야 한다.

  1. HTTPS를 통해 리포지토리를 사용할 수 있도록 패키지 인덱스를 업데이트하고 apt패키지를 설치한다.
$ sudo apt-get update
$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. Docker의 공식 GPG 키를 추가한다.
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. 리포지토리를 설정한다.
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker 엔진 설치

  1. apt패키지 인덱스를 업데이트하고 최신 버전의 Docker Engine, containerd 및 Docker Compose를 설치한다.
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. hello-world 이미지를 실행해 Docker 엔진이 올바르게 설치되었는지 확인한다.
$ sudo docker run hello-world

System has not been booted with systemd as init system (PID 1). Can't operate 라는 오류가 발생하는 경우
-> 하단의 WSL2에서 Docker 자동 실행을 따라한다.


3. 이외에도 다음 명령어를 통해서 Docker 엔진이 설치되었는지 확인할 수 있다.
$ sudo docker version



+) WSL2에서 Docker 자동 실행

WSL 환경이 Linux와 유사한 환경을 제공하지만 Docker Daemon이 자동으로 실행되지 않는다는 문제점이 있다. 다음 과정을 통해 Docker Daemon을 자동으로 실행되게 해보자.

  1. visudo에 접속한다. visudo는 sudo 권한을 부여해줄 수 있다.
$ sudo visudo
  1. visudo 접속 후 맨 아래에 user명 ALL=(ALL) NOPASSWD: /usr/bin/dockerd를 추가한다. (user명은 기본 계정명)

  2. Docker Daemon이 실행 중이 아닌 경우 실행하도록 프로필 파일을 업데이트 한다.
    아래 명령어를 그대로 terminal에 치면 된다.

$ echo '# Start Docker daemon automatically when logging in if not running.' >> ~/.zshrc
echo 'RUNNING=`ps aux | grep dockerd | grep -v grep`' >> ~/.zshrc
echo 'if [ -z "$RUNNING" ]; then' >> ~/.zshrc
echo '    sudo dockerd > /dev/null 2>&1 &' >> ~/.zshrc
echo '    disown' >> ~/.zshrc
echo 'fi' >> ~/.zshrc
  1. user를 docker 그룹에 추가한다. 이렇게 하면 sudo를 사용해 Docker 명령을 실행할 필요가 없다.
$ sudo usermod -a -G docker user명
  1. terminal을 재 실행한 후 hello-world 이미지를 실행해본다.
$ docker run hello-world



Ref.

https://docs.docker.com/engine/install/ubuntu/
https://blog.nillsf.com/index.php/2020/06/29/how-to-automatically-start-the-docker-daemon-on-wsl2/

profile
log.info("공부 기록 블로9")

0개의 댓글