서론
도커-쿠버네티스 환경을 세팅하고 스프링을 배포하는 강의를 진행합니다.
라이선스 주요사항.
- 도커 자체는 무료입니다.
- https://docs.docker.com/engine/#licensing
- 다만 도커 데스크탑은 무료가 아닙니다.
- 도커 데스크탑의 주 기능은 UI 도구이며 없어도 사용에 지장은 없습니다.
- 이 강의는 도커 데스크탑을 사용하지 않는다는 전제하에 진행됩니다.
- 도커 데스크탑의 라이선스 정책은 아래와 같습니다.
- https://docs.docker.com/subscription/desktop-license/
- 2024년 7월 2일 기준으로 직원 250명 이상 연간수익 1000만달러(100억원:환율 천원 계산)인 경우 유로 플랜을 사용해야합니다.
- https://www.docker.com/pricing/
- 다만 프로까지는 부담되는 금액은 아니기에 선택은 여러분의 몫입니다.
- https://docs.docker.com/subscription/desktop-license/
도커, 도커 데스크탑 설치
직접 설명을 쓰려고 했으나 아래 사이트가 너무 잘 나와있는 관계로… 그냥 링크를 걸어놓겠습니다. (날로먹기..) 도커 데스크탑의 유료 라이센스를 피하고 싶다면 “도커 데스크탑”을 제외하고 “도커”만 설치하시기 바랍니다.!
- 윈도우
-
https://docs.docker.com/desktop/install/windows-install/
# 윈도우의 경우 설치 이후에 파워쉘을 열고 아래 버전을 확인해보자. # 앞으로 모든 강의는 파워쉘 기반으로 설명된다. wsl -l -v # 아래처럼 버전이 2면 그대로 진행하자. NAME STATE VERSION * Ubuntu-22.04 Running 2 docker-desktop Running 2 docker-desktop-data Running 2 # 그렇지 않다면 버전을 지정해주자. wsl --set-default-version 2 # wsl엔 초기 암호가 없으며 암호를 변경하고 싶다면 cmd를 열어서 아래와 같이 입력하자. wsl -u root passwd # ubuntu 계정의 비밀번호도 같이 만들어주자. passwd ubuntu # 기본적으로 ifconfig 같은것도 없으니 net-tools 설치도 권장합니다. sudo apt update sudo apt install net-tools
wsl 재설치 방법
예전에 설치한 wsl 이 심하게 꼬여서 아래처럼 다시 설치했습니다. 무난한 우분투로 다시 깔았습니다.
wsl --uninstall # 필자의 경우 윈도우 11은 괜찮았는데 윈도우 10은 아래와 같은 오류가났다. # Error: 0x800701bc WSL 2 # WSL 2에 커널 구성 요소 업데이트가 필요합니다. 자세한 내용은 https://aka.ms/wsl2kernel을 참조하십시오. # 윈도우 10에서 위 오류가 날 경우 링크 타고 들어가서 설치해주면된다. wsl --set-default-version 2 wsl --install -d ubuntu # 처음 설치시 유저이름은 컴퓨터 이름과 맞춰주시면 됩니다. # 만일 도커 데스크탑이랑 설치하다 꼬였다면 모두 지우고 wsl을 먼저 완료하고 도커 데스크탑을 설치하는것이 정신건강에 좋다.
-
- 맥
- https://docs.docker.com/desktop/install/mac-install/
- 리눅스
- https://docs.docker.com/desktop/install/linux-install/
도커 설치 확인
도커가 잘 설치되었는지 확인해봅시다.
docker --version
도커의 주요 명령어들
- 아래 명령어는 자주 쓰이는 명령어로 차차 설명할 예정이니 프린트 해두거나 저장해두시기 바랍니다.
(인프라 쪽이야 매일 쓰겠지만 개발자는 한번 자동화 해놓으면 잘 안써서 사용할 때마다 찾아보게 됩니다….)
```
이미지 관련
docker pull [이미지 이름]: 도커 허브(Docker Hub) 등에서 이미지를 다운로드합니다. docker build -t [이미지 이름]:[태그] [Dockerfile 경로]: Dockerfile을 사용하여 이미지를 빌드합니다. docker images: 로컬에 저장된 도커 이미지를 목록으로 표시합니다. docker rmi [이미지 ID]: 로컬에서 이미지를 삭제합니다.
컨테이너 관련
docker run [옵션] [이미지 이름]: 이미지를 기반으로 새로운 컨테이너를 생성하고 실행합니다. docker ps: 현재 실행 중인 컨테이너 목록을 표시합니다. docker ps -a: 실행 중이거나 종료된 모든 컨테이너 목록을 표시합니다. docker stop [컨테이너 ID]: 실행 중인 컨테이너를 중지합니다. docker start [컨테이너 ID]: 중지된 컨테이너를 다시 시작합니다. docker restart [컨테이너 ID]: 컨테이너를 재시작합니다. docker rm [컨테이너 ID]: 종료된 컨테이너를 삭제합니다. docker logs [컨테이너 ID]: 컨테이너의 로그를 확인합니다. docker exec -it [컨테이너 ID] [명령어]: 실행 중인 컨테이너에서 명령어를 실행합니다. 주로 쉘에 접속할 때 사용합니다(e.g., docker exec -it [컨테이너 ID] /bin/bash).
네트워크 관련
docker network ls: 도커 네트워크 목록을 표시합니다. docker network create [네트워크 이름]: 새로운 네트워크를 생성합니다. docker network rm [네트워크 이름]: 네트워크를 삭제합니다. docker network inspect [네트워크 이름]: 특정 네트워크의 상세 정보를 확인합니다.
볼륨 관련
docker volume ls: 도커 볼륨 목록을 표시합니다. docker volume create [볼륨 이름]: 새로운 볼륨을 생성합니다. docker volume rm [볼륨 이름]: 볼륨을 삭제합니다. docker volume inspect [볼륨 이름]: 특정 볼륨의 상세 정보를 확인합니다.
도커 컴포즈 관련
docker-compose up: Docker Compose 파일을 기반으로 서비스를 생성하고 실행합니다. docker-compose down: Docker Compose로 실행된 모든 서비스를 중지하고 삭제합니다. docker-compose ps: Docker Compose로 실행 중인 컨테이너 목록을 표시합니다. docker-compose build: Docker Compose 파일을 기반으로 이미지를 빌드합니다. docker-compose logs: Docker Compose로 실행된 서비스의 로그를 확인합니다. ```