처음엔 virtual box 내에 우분투가 존재 하니
해당 우분투에 oracle xe 를 다운 받아서 설치 하려 했다.
하지만 요즘 세상은 일일이 다 까는 것보다
docker 로 이미지별 container 에 올리는것이 대세니.
대세를 따라 보기로 한다.
우선 docker를 깔아 본다.
1. docker 를 설치 전단계.
나는 처음이니 docker 가 설치 안되어 있지만 혹시 docker를 과거에 깔고 기억 못할수 있으니
docker --version 명령어를 실행해 본다.
역시 안갈려 있다.
1-1. docker 설치 전
sudo apt upgrade -y
1-2. docker 설치에 필요한 종속성이 있는 package 들을 설치 한다.
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
1-3. docker GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
curl 로 docker 로 부터 GPC 키를 다운 받아 놔야 된댄다.
이유 설명이 있지만 이해는 안간다. 먼소리인지!!!!
Docker 설치 시 GPG 키 추가가 필요한 이유
공식 저장소 확인: Docker의 공식 APT 저장소를 시스템에 추가할 때, 이 저장소가 신뢰할 수 있는 소스임을 확인하기 위해 GPG 키가 필요합니다.- 패키지 관리 시스템 요구사항: Ubuntu와 같은 리눅스 배포판의 패키지 관리 시스템은 보안상의 이유로 서명된 패키지만 설치하도록 설계되어 있습니다
- 자동 업데이트 보안: 시스템 업데이트 시 Docker 패키지의 신뢰성을 지속적으로 확인할 수 있습니다
- 중간자 공격 방지: GPG 키 검증을 통해 패키지 다운로드 과정에서 발생할 수 있는 중간자 공격을 방지합니다.
이 명령어는 Docker의 공식 GPG 키를 다운로드하여 시스템의 신뢰할 수 있는 키 목록에 추가합니다.결론적으로, Docker의 GPG 키 추가는 소프트웨어 설치 과정의 보안을 강화하고, 신뢰할 수 있는 소스에서만 패키지를 설치하도록 보장하는 중요한 단계입니다.
1-4. docker 저장소 추가
: 이 또한 시킨대로 우분투 prompt 에 ctrl+c+v
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
설명
1.echo "...": 저장소 정보를 포함한 문자열을 생성합니다.
2.deb: 이는 바이너리 패키지 저장소임을 나타냅니다.
3.[arch=amd64]: 64비트 아키텍처용 패키지만 사용함을 지정합니다.
4.signed-by=/usr/share/keyrings/docker-archive-keyring.gpg: 이 저장소의 패키지를 검증하는 데 사용할 GPG 키 파일의 위치를 지정합니다.
5. https://download.docker.com/linux/ubuntu: Docker의 공식 Ubuntu 저장소 URL입니다.
6. $(lsb_release -cs): 현재 Ubuntu 버전의 코드네임을 동적으로 가져옵니다. 예를 들어, Ubuntu 20.04의 경우 'focal'이 됩니다.
7. stable: 안정 버전의 저장소를 사용함을 나타냅니다.
8. | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null: 이 부분은 생성된 문자열을 /etc/apt/sources.list.d/docker.list 파일에 root 권한으로 쓰는 작업을 수행합니다. > /dev/null은 출력을 숨깁니다.
이 명령어를 실행하면 시스템의 패키지 관리자가 Docker의 공식 저장소에서 Docker 패키지를 찾고 설치할 수 있게 됩니다. 이는 최신 버전의 Docker를 안전하고 신뢰할 수 있는 소스에서 설치하고 업데이트하기 위한 중요한 단계입니다.
2. docker 설치.
2-1. docker 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
2-2. docker 설치후
수행 명령어를 치면 에러가 난다.

난 설치시 위에서 sudo apt update 를 했으므로
또 sudo apt update 를 하지 않았다.
sudo apt install -y docker-ce docker-ce-cli containerd.io 만 수행 했다.
그래서 그런지 에러가 난다.
시키는 대로 update 하고 install 하니 정상작동한다.
sudo systemctl start docker
sudo systemctl enable docker
궁금했다.
sudo systemctl start docker 는 docker 시작 하라는걸로 알겠는데
sudo systemctl enable docker 는 머 하는 명령인가? -> 매번 우분투 껐다 켜지면 docker 를 수행 하라는 명령어란다.
(즉 윈도우에 시작프로그램에 등록되서 service를 시작 해주는 역활과 똑같은....)
2-3. docker 가 정상적으로 설치 됐는지 hello-world를 실행 해본다.
최초 한번 sudo docker run hello-world 실행 하면
local에 이미지가 없으니 다운 받아서 수행 한다.
두번째 sudo docker run hello-world 를 치면 이미지 다운 없이 바로 수행 된다.

2-4. 현재 user를 docker group 에 추가 한다.
이걸 해야 매번 명령어 칠때 sudo 를 안붙여도 된다고 한다.
sudo usermod -aG docker $USER
설명
user 를 docker group 에 추가후 로그아웃과 로그인을 다시 해야함.
sudo usermod -aG docker $USER 명령어는 현재 사용자를 docker 그룹에 추가하는 것으로, Oracle 이미지 설치 전에 반드시 필요한 단계는 아니지만, Docker를 더 편리하고 안전하게 사용하기 위해 권장되는 단계입니다. 이 명령어를 실행해야 하는 주요 이유는 다음과 같습니다:
- 권한 관리: Docker 데몬은 기본적으로 root 권한으로 실행됩니다. 사용자를 docker 그룹에 추가함으로써, sudo 없이도 Docker 명령어를 실행할 수 있게 됩니다.
- 보안 강화: 모든 Docker 명령을 root로 실행하는 것은 보안상 위험할 수 있습니다. docker 그룹에 사용자를 추가하면, 필요한 권한만을 부여하여 보안을 강화할 수 있습니다.
- 편의성: sudo를 매번 입력하지 않아도 되므로, Docker 사용이 더 편리해집니다..
- 자동화 용이성: 스크립트나 CI/CD 파이프라인에서 Docker를 사용할 때, sudo 없이 명령어를 실행할 수 있어 자동화가 용이해집니다.
- 권한 분리: 시스템 전체에 대한 root 권한을 부여하지 않고도 Docker 관련 작업을 수행할 수 있게 됩니다
이 명령어를 실행한 후에는 로그아웃 후 다시 로그인하거나, newgrp docker 명령어를 실행하여 변경사항을 적용해야 합니다
.따라서, 이 단계를 수행하는 것이 필수는 아니지만, Docker를 더 안전하고 효율적으로 사용하기 위해 권장되는 좋은 관행입니다.
'SI 업무 > linux' 카테고리의 다른 글
| 리눅스 용량 확인 (1) | 2024.12.08 |
|---|---|
| Postman 설치법 (0) | 2024.11.23 |
| 3. docker 내 oracle-xe 를 재 구동 시키지 못해서 삽질. (1) | 2024.11.19 |
| 2. 우분투에 Docker 로 OracleXE 설치 법 (2) | 2024.11.18 |
| 0. 로컬 pc에서 virtualbox 내 linux 에 접속이 안될때 (2) | 2024.11.16 |