Ubuntu 24.04 LTS에 Docker 설치

lsb_release -a 명령으로 현재 OS 버전 확인

doris@ubuntu-linux-2404:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 24.04 LTS
Release:    24.04
Codename:    noble
doris@ubuntu-linux-2404:~$

기존 Docker 삭제

이미 Docker 가 설치되어 있다면 삭제.
설치된게 없다면 스킵.

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

패키지 업데이트 및 필수 도구 설치

sudo apt install -y ca-certificates curl gnupg

gnupg : 파일/패키지 서명 검증 도구 Docker 패키지가 “공식인지” 검증할 때 사용됨.

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo apt install -y ca-certificates curl gnupg

[sudo] password for doris:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20240203).
ca-certificates set to manually installed.
The following additional packages will be installed:
  dirmngr gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv keyboxd libcurl3t64-gnutls 
Setting up gpg-wks-client (2.4.4-2ubuntu17.4) ...
Processing triggers for man-db (2.12.0-4build2) ...
...
중간 생략
...

doris@ubuntu-linux-2404:~/Desktop$

Docker 공식 GPG 키 추가

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

실행 결과

doris@ubuntu-linux-2404:~/Desktop$ sudo install -m 0755 -d /etc/apt/keyrings
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ ls -alh /etc/apt/keyrings/docker.gpg
-rw-r--r-- 1 root root 2.7K Mar 19 16:30 /etc/apt/keyrings/docker.gpg
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ ls -alh /etc/apt/keyrings/docker.gpg
-rw-r--r-- 1 root root 2.7K Mar 19 16:30 /etc/apt/keyrings/docker.gpg
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
doris@ubuntu-linux-2404:~/Desktop$

Docker 저장소 등록

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

실행 결과

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ cat /etc/apt/sources.list.d/docker.list
cat: /etc/apt/sources.list.d/docker.list: No such file or directory
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ cat /etc/apt/sources.list.d/docker.list
deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$

Docker 설치

sudo apt update 으로 최신으로 업데이트

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo apt update
Get:1 https://download.docker.com/linux/ubuntu noble InRelease [48.5 kB]
Get:2 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages [46.8 kB]
Hit:3 http://ports.ubuntu.com/ubuntu-ports noble InRelease
Hit:4 http://ports.ubuntu.com/ubuntu-ports noble-updates InRelease
Hit:5 http://ports.ubuntu.com/ubuntu-ports noble-backports InRelease
Hit:6 http://ports.ubuntu.com/ubuntu-ports noble-security InRelease
Fetched 95.3 kB in 2s (55.1 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
675 packages can be upgraded. Run 'apt list --upgradable' to see them.
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$

docker와 docker-compose 설치

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  docker-ce-rootless-extras libslirp0 pigz slirp4netns
Suggested packages:
  cgroupfs-mount | cgroup-lite docker-model-plugin
The following NEW packages will be installed:
  containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin libslirp0 pigz slirp4netns
0 upgraded, 9 newly installed, 0 to remove and 675 not upgraded.
Need to get 84.3 MB of archives.
After this operation, 371 MB of additional disk space will be used.
Get:1 https://download.docker.com/linux/ubuntu noble/stable arm64 containerd.io arm64 2.2.2-1~ubuntu.24.04~noble [20.2 MB]

...
중간 생략
...

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$

Docker 실행 확인

sudo docker run hello-world 를 실행해서 hello-world 이미지를 가지고와서 실행하여
콘솔에 Hello from Docker! 가 출력되는지 확인

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
198f93fd5094: Pull complete
95ce02e4a4f1: Download complete
Digest: sha256:85404b3c53951c3ff5d40de0972b1bb21fafa2e8daa235355baf44f33db9dbdd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$

sudo 없이 Docker 사용

도커 관련 명령을 실행할때 루트 권한으로 조회 해야함.
루트 권한이 아닌 현재 계정에서 바로 실행 가능하도록 docker 그룹에 현재 계정을 추가.

sudo 없이 실행하면 에러발생, sudo 로 루트 권한으로 실행하면 정상 조회 됨.

doris@ubuntu-linux-2404:~/Desktop$ docker ps -a
permission denied while trying to connect to the docker API at unix:///var/run/docker.sock
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
5bb33559d838   hello-world   "/hello"   25 seconds ago   Exited (0) 25 seconds ago             inspiring_euler
doris@ubuntu-linux-2404:~/Desktop$

루트 권한 없이 현재 계정으로 실행 가능하게 하기위해
현재 계정을 docker 그룹에 추가 및 docker 그룹을 생성.

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo usermod -aG docker $USER
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ newgrp docker
doris@ubuntu-linux-2404:~/Desktop$

sudo 없이 Dcoker 버전과 Docker compose 버전 확인.
실행중인 컨테이너 프로세스 조회, 종료된 컨테이너 조회되는지 확인.

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ docker --version
Docker version 29.3.0, build 5927d80
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ docker compose version
Docker Compose version v5.1.0
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     PORTS     NAMES
5bb33559d838   hello-world   "/hello"   2 minutes ago   Exited (0) 2 minutes ago             inspiring_euler
doris@ubuntu-linux-2404:~/Desktop$

현재 계정 권한으로 관련 명령이 모두 정상 실행됨.

Docker 자동 실행 설정

머신 재시작시에도 자동 실행되도록 시스템등록

doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable docker
doris@ubuntu-linux-2404:~/Desktop$
doris@ubuntu-linux-2404:~/Desktop$ sudo systemctl start docker
doris@ubuntu-linux-2404:~/Desktop$

등록되었는지 확인
systemctl status docker 명령을 실행해서 Active: active (running) 로 표시되는지 확인.

doris@ubuntu-linux-2404:~$
doris@ubuntu-linux-2404:~$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Thu 2026-03-19 16:39:13 KST; 44min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1720 (dockerd)
      Tasks: 9
     Memory: 107.7M (peak: 109.5M)
        CPU: 783ms
     CGroup: /system.slice/docker.service
             └─1720 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Mar 19 16:39:13 ubuntu-linux-2404 dockerd[1720]: time="2026-03-19T16:39:13.370301003+09:00" level=info msg="Restoring containers: start."
Mar 19 16:39:13 ubuntu-linux-2404 dockerd[1720]: time="2026-03-19T16:39:13.39

+ Recent posts