A A
[Docker] Ubuntu์— Docker Community Edition (CE) ์„ค์น˜
ํ•œ๋ฒˆ UTM์— ์„ค์น˜ํ•œ ๊ฐ€์ƒ๋จธ์‹ (VM) Ubuntu์— Docker Community Edition Version์„ ํ•œ๋ฒˆ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Docker Community Edition ์„ค์น˜ํ•ด๋ณด๊ธฐ (Terminal ver.)

Ubuntu์—์„œ Terminal์„ ์—ฐ ๋‹ค์Œ, ํ•œ๋ฒˆ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๋จผ์ €, ํ˜„์žฌ ์šฐ๋ถ„ํˆฌ ๋ฒ„์ „์„ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.
cat /etc/lsb-release
toby@tobykakao:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"
  • ์ตœ์‹  ํŒจํ‚ค์ง€๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ด์ค๋‹ˆ๋‹ค.
sudo apt-get update
toby@tobykakao:~$ sudo apt-get update
  • Docker ์„ค์น˜๋ฅผ ์œ„ํ•ด Docker์™€ ์˜์กด์„ฑ์ด ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์„ ๋ฏธ๋ฆฌ ์„ค์น˜ํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
sudo apt-get install -y
toby@tobykakao:~$ sudo apt-get install -y
  • ๋„์ปค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ GPG key๋ฅผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. GPG Key๋Š” apt๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์ธ์ฆํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • apt-key๋ฅผ ํ†ตํ•ด ์ง€์ • ์‚ฌ์ดํŠธ์—์„œ ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.
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
  • ์ถ”๊ฐ€๋œ gpg-key ํ™•์ธ
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub   rsa4096 2018-09-17 [SC]
      F6EC B376 2474 EDA9 D21B  7022 8719 20D1 991B C93C
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>
  • ์ถ”๊ฐ€๋œ ํ‚ค์ค‘ ์ฒซ๋ฒˆ์งธ ํ‚ค๋ฅผ ์„ ํƒํ•˜์„œ ํ•œ๋ฒˆ ์กฐํšŒํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
sudo apt-key fingerprint 0EBFCD88
toby@tobykakao:~$ sudo apt-key fingerprint 0EBFCD88
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]
  • Debian ๊ณ„์—ด์˜ Docker Repository PPA๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์—์ง€ ๋ฒ„์ „ ์„ค์น˜์‹œ ๋‹ค์Œ ๊ตฌ๋ฌธ์˜ ๋งˆ์ง€๋ง‰์˜ stable edge ์ถ”๊ฐ€ ๋งค๋‹ฌ ๊ธฐ๋Šฅ์ด ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์—์ง€ ๋ฒ„์ „์€ ๋ฒ„๊ทธ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„ ์•ˆ์ •ํ™” (stable)๋ฒ„์ „ ์„ค์น˜๋ฅผ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
echo "deb [arch=arm64 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
  • ์ด์ œ, ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Œ์œผ๋กœ, ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
sudo apt-get update
  • ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ update ํ•ด์ค€ํ›„, Docker๋ฅผ ํ•œ๋ฒˆ ์„ค์น˜ํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • ํ•œ๋ฒˆ ์„ค์น˜ํ•œ ์ €์žฅ์†Œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
apt-cache policy docker-ce
toby@tobykakao:~$ apt-cache policy docker-ce
docker-ce:
  Installed: 5:27.3.1-1~ubuntu.24.04~noble
  Candidate: 5:27.3.1-1~ubuntu.24.04~noble
  Version table:
 *** 5:27.3.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
        100 /var/lib/dpkg/status
     5:27.3.0-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.2.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.2.0-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.1.2-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.1.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.1.0-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.0.3-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.0.2-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:27.0.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.1.4-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.1.3-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.1.2-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.1.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.1.0-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.0.2-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.0.1-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
     5:26.0.0-1~ubuntu.24.04~noble 500
        500 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages
  • Docker Community Edition ์„ค์น˜
sudo apt-get -y install docker-ce
toby@tobykakao:~$ sudo apt-get -y install docker-ce
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
docker-ce is already the newest version (5:27.3.1-1~ubuntu.24.04~noble).
0 upgraded, 0 newly installed, 0 to remove and 31 not upgraded.
  • Docker Version & Docker Demon ์ƒํƒœ ํ™•์ธ
sudo docker version
toby@tobykakao:~$ sudo docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:41:54 2024
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.3.1
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.7
  Git commit:       41ca978
  Built:            Fri Sep 20 11:41:54 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.22
  GitCommit:        7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
 runc:
  Version:          1.1.14
  GitCommit:        v1.1.14-0-g2c9f560
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
sudo systemctl status docker
toby@tobykakao:~$ sudo systemctl status docker
\u25cf docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: e>
     Active: active (running) since Tue 2024-10-08 06:29:22 UTC; 3min 12s ago
TriggeredBy: \u25cf docker.socket
       Docs: https://docs.docker.com
   Main PID: 6151 (dockerd)
      Tasks: 12
     Memory: 21.8M (peak: 25.3M)
        CPU: 448ms
     CGroup: /system.slice/docker.service
             \u2514\u25006151 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>

Oct 08 06:29:21 tobykakao dockerd[6151]: time="2024-10-08T06:29:21.949221604Z" >
Oct 08 06:29:21 tobykakao dockerd[6151]: time="2024-10-08T06:29:21.950768736Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.037603419Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.382201927Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.403118720Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.403148719Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.403166677Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.403251384Z" >
Oct 08 06:29:22 tobykakao dockerd[6151]: time="2024-10-08T06:29:22.443517170Z" >
Oct 08 06:29:22 tobykakao systemd[1]: Started docker.service - Docker Applicati>
lines 1-22/22 (END)
  • ๋„์ปค๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” binary ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์‹œ sudo๋ฅผ ๋ช…์‹œํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ๋ช…๋ น์€ docker group์— ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
sudo usermod -aG docker $(whoami)
sudo systemctl restart docker
toby@tobykakao:~$ sudo usermod -aG docker $(whoami)
toby@tobykakao:~$ sudo systemctl restart docker
sudo systemctl status docker
toby@tobykakao:~$ sudo systemctl status docker
 docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: e>
     Active: active (running) since Tue 2024-10-08 06:34:50 UTC; 7s ago
TriggeredBy: \u25cf docker.socket
       Docs: https://docs.docker.com
   Main PID: 6561 (dockerd)
      Tasks: 11
     Memory: 19.9M (peak: 21.6M)
        CPU: 412ms
     CGroup: /system.slice/docker.service
             \u2514\u25006561 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>

Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.116420790Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.116728745Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.539155870Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.615004596Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.630171766Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.630198557Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.630216474Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.630249098Z" >
Oct 08 06:34:50 tobykakao dockerd[6561]: time="2024-10-08T06:34:50.656755022Z" >
Oct 08 06:34:50 tobykakao systemd[1]: Started docker.service - Docker Applicati>
sudo systemctl status containerd.service
toby@tobykakao:~$ sudo systemctl status containerd.service \u25cf containerd.service - containerd container runtime Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; prese> Active: active (running) since Tue 2024-10-08 06:29:21 UTC; 6min ago Docs: https://containerd.io Main PID: 5818 (containerd) Tasks: 11 Memory: 12.9M (peak: 14.2M) CPU: 883ms CGroup: /system.slice/containerd.service \u2514\u25005818 /usr/bin/containerd Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003640444> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003647236> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003653944> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003659402> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003666860> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003673360> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003832273> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003867731> Oct 08 06:29:21 tobykakao containerd[5818]: time="2024-10-08T06:29:21.003921563> Oct 08 06:29:21 tobykakao systemd[1]: Started containerd.service - containerd c>
  • ๋งŒ์•ฝ ์—ฌ๊ธฐ์„œ permission denied๊ฐ€ ๋–ด๋‹ค๋ฉด? → ์„ธ์…˜์—์„œ๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ ์šฉ์ด ์•ˆ๋˜์–ด ์žˆ์„์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋•Œ, newgrp ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฆ‰์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
toby@tobykakao:~$ docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:41:54 2024
 OS/Arch:           linux/arm64
 Context:           default
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/version": dial unix /var/run/docker.sock: connect: permission denied
newgrp docker
  • ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ๋กœ๊ทธ์ธ์ด ๋œ๊ฑธ ์•Œ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ์ด์ œ ๊ณ„์ •์„ ๋กœ๊ทธํ•˜์›ƒ ํ•˜๊ณ  ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•œ ํ›„๋กœ๋ถ€ํ„ฐ sudo ์—†์ด๋„ docker ๋ช…๋ น์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
toby@tobykakao:~$ docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:41:54 2024
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.3.1
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.7
  Git commit:       41ca978
  Built:            Fri Sep 20 11:41:54 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.22
  GitCommit:        7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
 runc:
  Version:          1.1.14
  GitCommit:        v1.1.14-0-g2c9f560
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

 

  • ์—ฌ๊ธฐ์„œ ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ž‘์—…์œผ๋กœ ๋ณด์•ˆ ์„ค์ • ๋ชจ๋“ˆ์ธ SELinux๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„์ปค ์‚ฌ์šฉ ๊ณผ์ •์—์„œ Permission Denied ๊ฐ™์€ ๊ถŒํ•œ ๊ฑฐ๋ถ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜„์žฌ SELinux ์„ค์ •๊ฐ’์„ ํ˜ธ๊ฐ€์ธํ•ด๋ณด๊ณ  enforcing ๋ชจ๋“œ๋ผ๋ฉด permissive ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ•์ œ ๋ชจ๋“œ (enforcing mode) ์ƒํƒœ์—์„œ๋Š” ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” SELinux ์ •์ฑ…์ด ํ™œ์„ฑํ™”๋˜์–ด ๊ฐ•์ œ์ ์œผ๋กœ ๊ทธ ์ •์ฑ…์„ ๋”ฐ๋ฅด๊ฒŒ ํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋ชจ๋“œ (permissive mode)๋กœ ์„ค์ •ํ•˜๋ฉด ์ ‘๊ทผ ์ œ์–ด ์œ„๋ฐ˜ ๋ฐœ์ƒ ์‹œ ๋กœ๊ทธ ๊ธฐ๋ก๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ(์˜ค๋ฅ˜)ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

  • SELinux ์‹คํ–‰ ๋ชจ๋“œ ํ™•์ธ
toby@tobykakao:~$ sestatus
  • ๋งŒ์•ฝ enforcing์ด ๋˜์–ด ์žˆ๋‹ค๋ฉด? ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•ด์„œ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
# permissive mode(0), enforcing mode(1)
toby@tobykakao:~$ sudo sentenforce 0

Docker Community Edition ์„ค์น˜ํ•ด๋ณด๊ธฐ (Script ver.)

Docker ์›น์‚ฌ์ดํŠธ์—์„œ ์ง€๊ณตํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ docker-ce๋ฅผ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
curl -fsSL https://get.docker.com -o get-docker.sh
vi get-docker.sh
# docker ์ž๋™์„ค์น˜ shell script
toby@tobykakao:~$ curl -fsSL https://get.docker.com -o get-docker.sh
toby@tobykakao:~$ vi get-docker.sh
  • ์ด๋ ‡๊ฒŒ ์•„๋ž˜์— ๋œจ๋Š” script ์ˆœ์„œ๋Œ€๋กœ ํ„ฐ๋ฏธ๋„์ฐฝ์„ ์—ด์–ด์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
# To install the latest stable versions of Docker CLI, Docker Engine, and their
# dependencies:
#
# 1. download the script
#
#   $ curl -fsSL https://get.docker.com -o install-docker.sh
#
# 2. verify the script's content
#
#   $ cat install-docker.sh
#
# 3. run the script with --dry-run to verify the steps it executes
#

# 4. run the script either as root, or using sudo to perform the installation.
#
#   $ sudo sh install-docker.sh
  • ๊ทธ๋ฆฌ๊ณ , ์…€ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฏ€๋กœ ์‹คํ–‰ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
# ์…€ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฏ€๋กœ ์‹คํ–‰ ๊ถŒํ•œ ํ•„์š”. x(execute) ๊ถŒํ•œ ๋ถ€์—ฌ
chmod +x get-docker.sh
  • ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌ ํ•œ ํ›„, ๋„์ปค ์ž๋™ ์„ค์น˜ ์…€ ์Šคํฌ๋ฆฝํŠธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
sudo sh get-docker.sh
  • ๋„์ปค ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# ๋„์ปค ๋ฒ„์ „ ํ™•์ธ
toby@tobykakao:~$ docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:41:54 2024
 OS/Arch:           linux/arm64
 Context:           default
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/version": dial unix /var/run/docker.sock: connect: permission denied

  • ๋จ„์•ฝ permission denied๊ฐ€ ๋œจ๋ฉด?

1. ํ˜„์žฌ ์‚ฌ์šฉ์ž Docker ๊ทธ๋ฃน์— ์ถ”๊ฐ€ ํ™•์ธ

"permission denied" ์˜ค๋ฅ˜๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ Docker ๊ทธ๋ฃน์— ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„์ง ์ ์šฉ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ Docker ๋ฐ๋ชฌ์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์ด ์—†์–ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ์‚ฌ์šฉ์ž Docker ๊ทธ๋ฃน์— ์ถ”๊ฐ€ ํ™•์ธ: ๋จผ์ € ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ Docker ๊ทธ๋ฃน์— ์ œ๋Œ€๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
groups $(whoami)

 

  • ์—ฌ๊ธฐ์„œ docker ๊ทธ๋ฃน์ด ๋‚˜์—ด๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‚˜์—ด๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
sudo usermod -aG docker $(whoami)

2. ์„ธ์…˜ ์žฌ์‹œ์ž‘

  • ์‚ฌ์šฉ์ž๊ฐ€ Docker ๊ทธ๋ฃน์— ์ถ”๊ฐ€๋œ ํ›„์—๋„ ๊ธฐ์กด ์„ธ์…˜์—์„œ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋กœ๊ทธ์•„์›ƒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์„ธ์…˜์„ ์žฌ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
newgrp docker

3. Docker ๋ฐ๋ชฌ์ด ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ

  • Docker ๋ฐ๋ชฌ์ด ์ œ๋Œ€๋กœ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ๋ชฌ์ด ์ค‘์ง€๋˜์–ด ์žˆ์œผ๋ฉด ๊ถŒํ•œ์ด ์žˆ์–ด๋„ ์—ฐ๊ฒฐ์ด ์•ˆ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
sudo systemctl status docker
  • Docker ๋ฐ๋ชฌ์ด ์ค‘์ง€๋˜์–ด ์žˆ์œผ๋ฉด, ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
sudo systemctl start docker

4. Docker ๋ช…๋ น์–ด ์žฌ์‹คํ–‰

  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•œ ํ›„ ๋‹ค์‹œ docker version ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋ด…๋‹ˆ๋‹ค. ์œ„๋‹จ๊ณ„๋ฅผ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•˜๋ฉด Docker ๊ถŒํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
docker version

๊ทธํ›„, apt๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ Docker๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

sudo apt purge docker-ce
toby@tobykakao:~$ sudo apt purge docker-ce
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  pigz
Use 'sudo apt autoremove' to remove it.
The following packages will be REMOVED:
  docker-ce*
0 upgraded, 0 newly installed, 1 to remove and 31 not upgraded.
After this operation, 79.4 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 166965 files and directories currently installed.)
Removing docker-ce (5:27.3.1-1~ubuntu.24.04~noble) ...
(Reading database ... 166956 files and directories currently installed.)
Purging configuration files for docker-ce (5:27.3.1-1~ubuntu.24.04~noble) ...

๋˜ํ•œ ๊ด€๋ จ Directory๋„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

toby@tobykakao:~$ sudo rm -rf /var/lib/docker

ps. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ธ€์—์„  Docker๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.