Docker를 사용하는 이유
- 애플리케이션 개발 및 배포가 편해짐
- Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음
- CI/CD에서 지속적인 통합(Continuous Intergration) 과정의 테스트에서 Docker를 활용
- 어떤 서버를 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음
- 여러 애플리케이션의 독립성과 확장성이 높아짐
- Docker가 가상화에서 사실상 표준의 위치
Docker 및 Docker Compose 설치(Windows)
💡windows의 경우 WSL2 설치가 필요
WSL2 설치를 위한 사전 준비
[시작] → [제어판] → [프로그램 및 기능] → [Windows 기능 켜기/끄기] → [Hyper-V]와 [Linux용 Windows 하위 시스템] 체크 → Windows 재부팅
WSL2 설치
https://learn.microsoft.com/ko-kr/windows/wsl/install
1. 관리자 권한으로 PowerShell 실행
2. 다음 명령어를 통해 WSL2 설치
wsl --install
Ubuntu 22.04에 최신 버전의 docker 설치
Ubuntu Linux 버전 확인 명령어: lsb_release -a
💡다음 명령어들을 순차적으로 입력
# docker engine gpg 키 등록
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
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
# apt source 에 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
sudo apt-get update
# docker engine 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin docker-compose
# docker 그룹에 현재 계정을 등록하여 sudo 없이 docker 명령을 사용하게 함
sudo usermod -aG docker <username>
sudo service docker restart
# 새로운 터미널을 열고 확인
docker version
docker-compose --version
Docker Desktop 설치
https://docs.docker.com/desktop/install/windows-install/
Docker Test
Docker 실행 → [설정] → [Resources] → [WSL intergration] → Ubuntu 활성화 → [Apply & restart]
💡Ubuntu 22.04에서 관리하는 이미지, 컨테이너, 볼륨 등을 Windows의 Docker Desktop에서도 같이 관리할 수 있게 해줌
Container 실행 테스트
Ubuntu 터미널 실행 후 Docker 엔진과 구성을 확인하는 다음 명령어 입력
docker info
다음 명령어들을 순차적으로 입력해 nginx 이미지를 다운받고 실행까지 테스트
# nginx 이미지 다운받기
docker image pull nginx:1.25.3-alpine
docker images
docker image history nginx:1.25.3-alpine
docker run -d -p 8001:80 --name webserver01 nginx:1.25.3-alpine
docker ps | grep webserver01
docker port webserver01
curl localhost:8001
'TIL(Today I Learned)' 카테고리의 다른 글
TIL - AWS Elastic Beanstalk 배포 후 413 Request Entity Too Large (0) | 2024.07.01 |
---|---|
Docker 명령어 1 (0) | 2024.06.28 |
TIL - Entity의 Setter 사용을 지양하기 (0) | 2024.06.19 |
TIL - SecurityContextHolder에서 인증 객체 가져오기 (0) | 2024.06.17 |
TIL - Spring Boot에서 Filter 내 발생하는 Exception 처리 (0) | 2024.06.14 |