안녕하세요~ 작은나무입니다!!
오늘은 도커(Docker)를 설치하고 컨테이너 및 기본적인 설정 방법에 대해 알아보겠습니다.
먼저 도커(Docker)가 무엇인지 알아보고 시작하겠습니다.
도커(Docker)는 무엇일까요?
도커(Docker)는 컨테이너 기반 가상화 도구로 Linux에서 컨테이너 방식으로 프로세스를 독립된 실행 환경에서 실행하고 관리할 수 있게 도와줍니다.
Docker는 계층화된 파일 시스템을 기반으로 효율적으로 이미지를 관리하고 배포할 수 있습니다.
Docker를 사용하면 이미지 기반으로 컨테이너를 생성하고 실행할 수 있어 복잡한 설정 과정을 줄일 수 있습니다.
다시 말해, 미리 만들어진 이미지를 받아서 컨테이너만 생성하면 동일한 설정을 가진 파일 시스템과 격리된 시스템 자원, 네트워크를 사용할 수 있는 독립된 공간을 구성할 수 있는 것이지요.
도커 이미지(Docker Image)는 변하지 않는 템플릿으로, 어플리케이션 실행 환경을 일관되게 유지
도커 컨테이너(Docker Container)는 이미지를 기반으로 생성된 독립적인 실행 환경
도커(Docker)의 장점은 동일한 환경을 보장해서 개발과 운영 간의 차이를 최소화할 수 있고 이미지를 사용해서 어플리케이션을 빠르고 일관되게 배포 할 수 있는 장점이 있습니다.
1. 도커(Docker) 설치 전 필요한 Package를 설치
도커(Docker)를 설치 전에 필요한 패키지를 설치합니다.
1-1. 설치된 Ubuntu 버전을 확인해 봅니다. (확인 안하셔도 됩니다.)
~$ lsb_release -a
1-2. apt update 명령으로 패키지를 업데이트 합니다.
~$ sudo apt update
1-3. 필수 패키지를 설치합니다.
~$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
1-4. 안전한 통신을 위해 도커(Docker)의 GPG Key 인증을 추가한다.
~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
1-5. 도커(Docker) Repository를 추가한다.
~$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
1-5. 다시 apt update 명령으로 패키지를 업데이트 합니다.
~$ sudo apt update
1-6. 설치를 확인하기 위해 Docker 버전으로 상태를 확인해 봅니다.
1-7. 위와 같이 Docker 데몬 소켓 연결에 대한 권한 거부에 대한 메시지가 확인되면 아래와 같이 docker 그룹을 만들고 권한을 추가합니다.
※ $USER는 현재 접속중인 user 정보 입니다. 아래와 같이 확인 하실 수 있습니다.
~$ sudo groupadd docker
~$ sudo usermod -aG docker $USER
~$ newgrp
또는
~$ sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock는 편의를 위해 특정 계정의 권한을 변경하는 것이지만 보안상 좋은 방법은 아니기에 되도록이면 사용하지 않는게 좋다고 합니다.
다시 버전 정보를 확인해보면 permission denied 메시지가 사라진 것을 확인 할 수 있습니다.
※ docker.sock는 docker daemon을 실행할 수 있는 인터페이스 입니다.
docker daemon은 도커 엔진의 핵심 구성 요소 중 하나로 docker 호스트에서 실행되는 background 프로세스 입니다.
2. Linux Ubuntu에 도커(Docker) 설치
저는Linux Ubuntu에 도커(Docker)를 설치할 예정인대요~
Linux에서 도커(Docker)를 설치하는 방법은 정말 간단합니다.
2-1. 자동 설치 스크립트로 설치하기 (최신 버전)
Linux에서 배포판 종류를 자동으로 인식해 Docker Package를 설치해주는 스크립트를 제공합니다.
~$ sudo wget -qO- https://get.docker.com/ | sh
자동 설치 스크립트를 입력하고 조금 기다리면 위와 같이 설치가 완료 됩니다. (초간단!!)
설치 확인을 위해 도커(Docker) 버전을 확인해 봅니다.
~$ docker --version
설치가 된 것을 확인하실 수 있습니다.
아래 Ubuntu Package로 설치를 진행해 보기 위해 설치된 도커(Docker)를 삭제해 보겠습니다.
도커(Docker) 엔진을 삭제하기 위해 아래 명령어를 입력합니다.
~$ sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli
~$ sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce
다음으로 도커(Docker)에 저장된 이미지,컨테이너,볼륨,사용자가 만든 파일 등을 전부 삭제하는 명령어를 입력합니다.
※ 저는 기본 설치만 진행했기 때문에 아래 명령어를 실행하지 않아도 되지만 참고 사항 입니다.
~$ sudo rm -rf /var/lib/docker /etc/docker
~$ sudo rm /etc/apparmor.d/docker
~$ sudo groupdel docker
~$ sudo rm -rf /var/run/docker.sock
다시 삭제가 된건지 확인하기 위해 도커(Docker) 버전을 확인해 봅니다
위에서 설치한 도커(Docker)를 삭제 했으니 아래 Ubuntu Package로 설치하는 방법으로 설치 진행해 보겠습니다.
2-2. Ubuntu(최신 버전) 설치하기
Ubuntu에서도 아래와 같이 간단하게 설치를 진행 할 수 있습니다.
※ 아래 명령어는 도커(Docker) 가장 최신버전이 설치됩니다.
~$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
설치 확인을 위해 도커(Docker) 버전을 확인해 봅니다.
~$ docker --version
위에서 설치한 자동 설치 스크립트와 동일하게 설치가 된 것을 확인하실 수 있습니다.
2-3. Ubuntu(버전 지정) 설치하기
최신 버전이 아닌 특정 버전을 설치하려면 아래와 같이 진행하면 됩니다.
~$ apt-cache madison docker-ce
설치할 버전을 확인 하신 후 아래와 같이 설치 진행하시면 됩니다.
~$ version=5:26.1.3-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$version docker-ce-cli=$version containerd.io docker-compose-plugin
역시 위와 같이 동일하게 설치가 된 것을 확인하실 수 있습니다.
3. 도커(Docker)에 Ubuntu 컨테이너 생성하기
설치를 완료하고 도커(Docker)에 Ubuntu 컨테이너를 하나 생성해 보도록 하겠습니다.
3-1. 아래 명령어를 통해 도커(Docker) Ubuntu 이미지를 다운받을 수 있고 확인 할 수 있습니다.
~$ docker pull ubuntu
~$ docker images
3-2. docker run을 통해 컨테이너를 실행합니다.
~$ sudo docker run -it --name smalltree ubuntu:latest /bin/sh
3-3. 생성된 컨테이너는 아래와 같이 확인할 수 있습니다. (-a를 붙이면 모든 컨테이너를 확인)
~$ sudo docker ps -a
3-4. 실행되고 있는 컨테이너를 확인하기 위해 아래와 같이 옵션(-d)를 추가해서 실행해 보겠습니다.
-d 옵션은 컨테이너를 백그라운드에서 계속 실행할 수 있도록 해줍니다.
~$ sudo docker run -it -d --name smalltree ubuntu:latest /bin/sh
3-5. 도커(Docker) 컨테이너를 실행/중단/삭제하는 방법은 아래와 같이 명령어 입력해 주시면 됩니다.
~$ sudo docker start {CONTAINER ID or NAMES}
~$ sudo docker stop {CONTAINER ID or NAMES}
~$ sudo docker rm {CONTAINER ID or NAMES}
※ docker rm 명령어는 실행중인 컨테이너는 삭제할 수 없습니다.
4. 도커 컴포즈(docker-compose) 설치하기
여러 컨테이너를 정의하고 실행하기 위한 도구입니다.
YAML(docker-compose.yml)을 사용해서 복잡한 어플리케이션 간단하게 구성하고 배포하는대 아주 유용합니다.
4-1. 아래 명령어를 입력해서 도커 컴포즈를 설치합니다.
~$ sudo apt-get install docker-compose
4-2. 권한을 부여합니다.
~$ sudo chmod +x /usr/local/bin/docker-compose
4-3. 심볼릭 링크를 설정합니다.
~$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4-4. 도커 컴포즈 버전을 확인합니다. (버전 정보가 확인되면 설치 성공!)
~$ docker-compose --version
Ubuntu에 Docker를 설치하고, 컨테이너를 생성하고 기본 적인 설정 방법에 대해 알아봤습니다.
감사합니다.