ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 컨테이너 Ubuntu에 설치하기
    Programming and Database/Docker And Kubernetes 2024. 1. 26. 00:39
    반응형

    도커 로고이미지1
    Docker#1

    Docker 컨테이너 Ubuntu에 설치하기

    ※ 컨테이너 기반의 Docker 서비스를 구축하기 위한 사전 준비 사항
    01. Docker#1 / Host IP: 127.0.0.1 / Host 포트: 105 /  Guest IP: 10.100.0.105 / Guest 포트: 22
    02. Docker#2 / Host IP: 127.0.0.1 / Host 포트: 106 /  Guest IP: 10.100.0.106 / Guest 포트: 22
    03. Docker 설치
     - URL: https://docs.docker.com 

     

    도커 로고이미지2
    Docker#2

    ▶Docker 설치를 위해 docs.docker.com에 접속하여 Download and Install을 클릭합니다.

     

    도커 로고이미지3
    Docker#3

    ▶ Docker overview 카테고리를 통해서 Docker 설치를 위한 운영체제 환경을 선택할 수 있습니다. 해당 테스트는 리눅스 환경에 컨테이너 서비스를 올리기 때문에 Docker Desktop for Linux를 선택하여 설치도 가능합니다. 
    (테스트 환경: apt Repository를 이용하여 설치) -> 외부망이 연결되어 있어야 함.
    root@docker-ubuntu:~# sudo apt-get update
    기존:1 http://kr.archive.ubuntu.com/ubuntu focal InRelease
    받기:2 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
    받기:3 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
    받기:4 http://kr.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [811 kB]
    받기:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
    ...(생략)
    받기:42 http://kr.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [612 B]
    받기:43 http://kr.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,980 B]
    받기:44 http://kr.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [30.5 kB]
    내려받기 15.9 M바이트, 소요시간 28초 (560 k바이트/초)
    패키지 목록을 읽는 중입니다... 완료
    ▶ Ubuntu OS 환경에서 apt Repository를 이용하여 설치하기 위해 apt-get update를 통해 최신 패키지를 외부 사이트를 통해 동기화합니다.
    root@docker-ubuntu:~# apt-get install \
    > apt-transport-https \
    > ca-certificates \
    > curl \
    > gnupg-agent \
    > software-properties-common
    패키지 목록을 읽는 중입니다... 완료
    의존성 트리를 만드는 중입니다
    상태 정보를 읽는 중입니다... 완료
    패키지 ca-certificates는 이미 최신 버전입니다 (20211016ubuntu0.20.04.1).
    ca-certificates 패키지는 수동설치로 지정합니다.
    패키지 curl는 이미 최신 버전입니다 (7.68.0-1ubuntu2.18).
    패키지 software-properties-common는 이미 최신 버전입니다 (0.99.9.11).
    software-properties-common 패키지는 수동설치로 지정합니다.
    다음 새 패키지를 설치할 것입니다:
      apt-transport-https gnupg-agent
    0개 업그레이드, 2개 새로 설치, 0개 제거 및 76개 업그레이드 안 함.
    6,944 바이트 아카이브를 받아야 합니다.
    이 작업 후 208 k바이트의 디스크 공간을 더 사용하게 됩니다.
    계속 하시겠습니까? [Y/n] y
    받기:1 http://kr.archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.9 [1,704 B]
    받기:2 http://kr.archive.ubuntu.com/ubuntu focal-updates/universe amd64 gnupg-agent all 2.2.19-3ubuntu2.2 [5,240 B]
    내려받기 6,944 바이트, 소요시간 1초 (5,320 바이트/초)
    Selecting previously unselected package apt-transport-https.
    (데이터베이스 읽는중 ...현재 187534개의 파일과 디렉터리가 설치되어 있습니다.)
    Preparing to unpack .../apt-transport-https_2.0.9_all.deb ...
    Unpacking apt-transport-https (2.0.9) ...
    Selecting previously unselected package gnupg-agent.
    Preparing to unpack .../gnupg-agent_2.2.19-3ubuntu2.2_all.deb ...
    Unpacking gnupg-agent (2.2.19-3ubuntu2.2) ...
    apt-transport-https (2.0.9) 설정하는 중입니다 ...
    gnupg-agent (2.2.19-3ubuntu2.2) 설정하는 중입니다 ...
    ▶ Docker 사이트 가이드 문서에 첫 번째 표기된 apt-get install을 통해서 기본적인 패키지를 설치하도록 합니다. 해당 apt-get install을 통해서 설치되는 항목은 다음과 같습니다.

    - apt-transport-https : 패키지 관리자가 https를 통해 데이터 및 패키지에 접근 가능
    - curl : 특정 웹사이트에서 데이터를 다운로드할 때 사용
    - software-properties-common : *PPA를 추가하거나 제거할 때 사용
    - gnupg-agent : GnuPG key를 관리하는 agent 
    - ca-certificates : ca-certificate는 certificate authority에서 발행된 디지털 서명. SSL 인증서의 PEM 파일이 포함되어 있어 SSL 기반 앱이 SSL 연결이 되어있는지 확인
    root@docker-ubuntu:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
    OK
    ▶ curl 명령어를 통해서 GnuPG key Agent가 인증서를 저장하게 됩니다.
    root@docker-ubuntu:~# apt-key fingerprint 0EBFCD88
    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]
    ▶ curl 명령어를 통해서 디지털 인증서가 잘 적용됐는지 확인을 위해 fingerprint를 이용해 확인합니다.
    root@docker-ubuntu:~# add-apt-repository \
    > "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    > $(lsb_release -cs) \
    > stable"
    받기:1 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB]
    기존:2 http://kr.archive.ubuntu.com/ubuntu focal InRelease
    받기:3 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [27.3 kB]
    기존:4 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease
    기존:5 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease
    기존:6 http://security.ubuntu.com/ubuntu focal-security InRelease
    내려받기 84.9 k바이트, 소요시간 2초 (48.4 k바이트/초)
    패키지 목록을 읽는 중입니다... 완료
    ▶ URL 등록을 위해 add-apt-repository에서 해당 내역을 추가하고 실행합니다.
    > "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    > $(lsb_release -cs) \
    > stable"
    root@docker-ubuntu:~# apt-get update
    기존:1 https://download.docker.com/linux/ubuntu focal InRelease
    기존:2 http://kr.archive.ubuntu.com/ubuntu focal InRelease
    기존:3 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease
    기존:4 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease
    기존:5 http://security.ubuntu.com/ubuntu focal-security InRelease
    패키지 목록을 읽는 중입니다... 완료
    ▶ 신규로 등록한 Web 페이지를 통해서 Docker 패키지를 다운로드하기 전에 apt-get update를 통해 동기화합니다.
    root@docker-ubuntu:~# apt-get install docker-ce docker-ce-cli containerd.io
    패키지 목록을 읽는 중입니다... 완료
    의존성 트리를 만드는 중입니다
    상태 정보를 읽는 중입니다... 완료
    다음의 추가 패키지가 설치될 것입니다 :
      docker-buildx-plugin docker-ce-rootless-extras docker-compose-plugin git git-man liberror-perl pigz slirp4netns
    제안하는 패키지:
      aufs-tools cgroupfs-mount | cgroup-lite git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
    다음 새 패키지를 설치할 것입니다:
      containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin git git-man liberror-perl pigz slirp4netns
    0개 업그레이드, 11개 새로 설치, 0개 제거 및 76개 업그레이드 안 함.
    115 M바이트 아카이브를 받아야 합니다.
    이 작업 후 434 M바이트의 디스크 공간을 더 사용하게 됩니다.
    계속 하시겠습니까? [Y/n] y
    받기:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.6.20-1 [28.3 MB]
    받기:2 http://kr.archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57.4 kB]
    받기:3 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-buildx-plugin amd64 0.10.4-1~ubuntu.20.04~focal [25.9 MB]
    받기:4 http://kr.archive.ubuntu.com/ubuntu focal/main amd64 liberror-perl all 0.17029-1 [26.5 kB]
    받기:5 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 git-man all 1:2.25.1-1ubuntu3.10 [887 kB]
    받기:6 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:23.0.4-1~ubuntu.20.04~focal [13.2 MB]
    받기:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:23.0.4-1~ubuntu.20.04~focal [22.0 MB]
    받기:8 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 git amd64 1:2.25.1-1ubuntu3.10 [4,534 kB]
    받기:9 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-rootless-extras amd64 5:23.0.4-1~ubuntu.20.04~focal [8,779 kB]
    받기:10 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-compose-plugin amd64 2.17.2-1~ubuntu.20.04~focal [10.9 MB]
    받기:11 http://kr.archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74.3 kB]
    내려받기 115 M바이트, 소요시간 1분 6초 (1,743 k바이트/초)
    Selecting previously unselected package pigz.
    (데이터베이스 읽는중 ...현재 187542개의 파일과 디렉터리가 설치되어 있습니다.)
    Preparing to unpack .../00-pigz_2.4-1_amd64.deb ...
    Unpacking pigz (2.4-1) ...
    Selecting previously unselected package containerd.io.
    Preparing to unpack .../01-containerd.io_1.6.20-1_amd64.deb ...
    Unpacking containerd.io (1.6.20-1) ...
    Selecting previously unselected package docker-buildx-plugin.
    Preparing to unpack .../02-docker-buildx-plugin_0.10.4-1~ubuntu.20.04~focal_amd64.deb ...
    Unpacking docker-buildx-plugin (0.10.4-1~ubuntu.20.04~focal) ...
    Selecting previously unselected package docker-ce-cli.
    Preparing to unpack .../03-docker-ce-cli_5%3a23.0.4-1~ubuntu.20.04~focal_amd64.deb ...
    Unpacking docker-ce-cli (5:23.0.4-1~ubuntu.20.04~focal) ...
    Selecting previously unselected package docker-ce.
    Preparing to unpack .../04-docker-ce_5%3a23.0.4-1~ubuntu.20.04~focal_amd64.deb ...
    Unpacking docker-ce (5:23.0.4-1~ubuntu.20.04~focal) ...
    Selecting previously unselected package docker-ce-rootless-extras.
    Preparing to unpack .../05-docker-ce-rootless-extras_5%3a23.0.4-1~ubuntu.20.04~focal_amd64.deb ...
    Unpacking docker-ce-rootless-extras (5:23.0.4-1~ubuntu.20.04~focal) ...
    Selecting previously unselected package docker-compose-plugin.
    Preparing to unpack .../06-docker-compose-plugin_2.17.2-1~ubuntu.20.04~focal_amd64.deb ...
    Unpacking docker-compose-plugin (2.17.2-1~ubuntu.20.04~focal) ...
    Selecting previously unselected package liberror-perl.
    Preparing to unpack .../07-liberror-perl_0.17029-1_all.deb ...
    Unpacking liberror-perl (0.17029-1) ...
    Selecting previously unselected package git-man.
    Preparing to unpack .../08-git-man_1%3a2.25.1-1ubuntu3.10_all.deb ...
    Unpacking git-man (1:2.25.1-1ubuntu3.10) ...
    Selecting previously unselected package git.
    Preparing to unpack .../09-git_1%3a2.25.1-1ubuntu3.10_amd64.deb ...
    Unpacking git (1:2.25.1-1ubuntu3.10) ...
    Selecting previously unselected package slirp4netns.
    Preparing to unpack .../10-slirp4netns_0.4.3-1_amd64.deb ...
    Unpacking slirp4netns (0.4.3-1) ...
    slirp4netns (0.4.3-1) 설정하는 중입니다 ...
    liberror-perl (0.17029-1) 설정하는 중입니다 ...
    docker-buildx-plugin (0.10.4-1~ubuntu.20.04~focal) 설정하는 중입니다 ...
    containerd.io (1.6.20-1) 설정하는 중입니다 ...
    Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
    docker-compose-plugin (2.17.2-1~ubuntu.20.04~focal) 설정하는 중입니다 ...
    docker-ce-cli (5:23.0.4-1~ubuntu.20.04~focal) 설정하는 중입니다 ...
    pigz (2.4-1) 설정하는 중입니다 ...
    git-man (1:2.25.1-1ubuntu3.10) 설정하는 중입니다 ...
    docker-ce-rootless-extras (5:23.0.4-1~ubuntu.20.04~focal) 설정하는 중입니다 ...
    docker-ce (5:23.0.4-1~ubuntu.20.04~focal) 설정하는 중입니다 ...
    Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
    Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
    git (1:2.25.1-1ubuntu3.10) 설정하는 중입니다 ...
    Processing triggers for man-db (2.9.1-1) ...
    Processing triggers for systemd (245.4-4ubuntu3.20) ...
    ▶ Docker 엔진 설치를 위해서 아래와 같은 패키지를 apt-get install docker-ce docker-ce-cli containerd.io을 통해 설치하도록 합니다.
     * docker-ce : Docker CE 패키지(Docker Engine)
     * docker-ce-cli : Docker CLI 패키지
     * containerd.io : ctr(디버깅 목적으로만 사용, 기능 제한적) +nerdctl(도커명령어 포함)
    root@docker-ubuntu:~# docker version
    Client: Docker Engine - Community
     Version:           23.0.4
     API version:       1.42
     Go version:        go1.19.8
     Git commit:        f480fb1
     Built:             Fri Apr 14 10:32:23 2023
     OS/Arch:           linux/amd64
     Context:           default
    
    Server: Docker Engine - Community
     Engine:
      Version:          23.0.4
      API version:      1.42 (minimum version 1.12)
      Go version:       go1.19.8
      Git commit:       cbce331
      Built:            Fri Apr 14 10:32:23 2023
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.6.20
      GitCommit:        2806fc1057397dbaeefbea0e4e17bddfbd388f38
     runc:
      Version:          1.1.5
      GitCommit:        v1.1.5-0-gf19387a
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    ▶ Docker 엔진 설치가 완료되었으면  Docker version  명령어를 통해서  23.0.4가 설치된 것을 확인할 수 있습니다.
    guru@docker-ubuntu:~$ docker ps
    permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
    ▶ 일반 유저계정인 guru  계정에서 dock ps를 통해서 docker 컨테이너 프로세스 확인 시 permission 에러가 발생하면 그룹에 해당 계정을 추가하도록 합니다.
    root@docker-ubuntu:~# cat /etc/group | grep -i docker
    docker:x:996:
    ▶ /etc/group를 통해서 docker 그룹 항목을 확인합니다.
    root@docker-ubuntu:~# usermod -aG docker guru
    
    root@docker-ubuntu:~# cat /etc/group | grep -i docker
    docker:x:996:guru
    ▶ usermod  -aG docker guru 명령어를 통해서 guru 일반계정을 docker 그룹에 넣어줍니다.
    guru@docker-ubuntu:~$ docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    ▶ 일밥 유저계정 guru에서도 docker ps 명령어를 통해서 컨테이너 서비스 이미지를 확인할 수 있습니다.(현재 배포된 이미지 x)

     

    PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.

    포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.

     

    2024.01.24 - [Programming and Database/Docker And Kubernetes] - Docker Virtualbox Ubuntu OS 설치하기

     

    Docker Virtualbox Ubuntu OS 설치하기

    Docker Virtualbox Ubuntu OS 설치하기 ※ 컨테이너 기반의 Docker 서비스를 구축하기 위한 사전 준비 사항 01. Docker#1 / Host IP: 127.0.0.1 / Host 포트: 105 / Guest IP: 10.100.0.105 / Guest 포트: 22 02. Docker#2 / Host IP: 127.0.

    pinetreeday.tistory.com

    2024.01.24 - [Programming and Database/Docker And Kubernetes] - Docker Virtualbox Cent OS 설치하기

     

    Docker Virtualbox Cent OS 설치하기

    Docker Virtualbox Cent OS 설치하기 ※ 컨테이너 기반의 Docker 서비스를 구축하기 위한 사전 준비 사항 01. Docker#1 / Host IP: 127.0.0.1 / Host 포트: 105 / Guest IP: 10.100.0.105 / Guest 포트: 22 02. Docker#2 / Host IP: 127.0.0.

    pinetreeday.tistory.com

     

     

    반응형

    댓글

Designed by Tistory.