Docker 설치 방법
1. 우분투 시스템 패키지 업데이트
sudo apt-get update
2. 필요한 패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
3. Docker의 공식 GPG키를 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4. Docker의 공식 apt 저장소를 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5. 시스템 패키지 업데이트
sudo apt-get update
6. Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io
7. Docker가 설치 확인
7-1 도커 실행상태 확인
sudo systemctl status docker
7-2 도커 실행
sudo docker run hello-world
8, Docker compose 설치
sudo apt install docker-compose
- 컨테이너 실행
docker-compose up-d
- 도커 이미지를 아카이브 파일로 저장
docker save -o <이미지 아카이브 파일명>.tar <이미지 이름>:<태그>
- 로컬에서 EC2 인스턴스로 아카이브 파일 전송
scp -i <SSH 키 페어 파일 경로> <로컬 경로>/<이미지 아카이브 파일명>.tar ubuntu@<EC2 인스턴스 IP>:~
- EC2 인스턴스에서 도커 이미지 로드
sudo docker load -i <이미지 아카이브 파일명>.tar
- 도커 컨테이너 실행
docker run [옵션] 이미지명 [명령] [인자]
ex) docker run -d -p 8080:8080 my-spring-app
-d : 컨테이너를 백그라운드에서 실행
-p : 호스트 포트와 컨테이너 포트를 연결
-p 8080:8080
호스트의 8080포트를 컨테이너의 8080 포트와 연결
이때 호스트 포트를 ec2 보안그룹에서 열어줘야 한다.
- Local에서 실행 확인
http://<인스턴스 퍼블릭 IP 주소>:호스트 포트번호
or
http://<인스턴스 퍼블릭 DNS>:호스트 포트번호
Docker를 활용한 배포 전체 요약
1. EC2 인스턴스 시작: 도커를 실행할 EC2 인스턴스를 시작합니다. 적절한 인스턴스 유형과 용량을 선택하고, 보안 그룹 및 기타 구성을 설정합니다. EC2 인스턴스에 접속할 수 있는 SSH 키 페어도 준비해야 합니다.
2. 도커 설치: EC2 인스턴스에 도커를 설치합니다. 이는 도커 공식 설치 문서를 참조하여 진행할 수 있습니다.
3.도커 이미지 가져오기: 로컬에서 도커 이미지를 EC2 인스턴스로 전송합니다. 이를 위해 docker save 명령을 사용하여 이미지를 아카이브 파일로 저장한 다음, SCP 또는 AWS CLI를 사용하여 EC2 인스턴스로 복사합니다.
4. 도커 이미지 로드: EC2 인스턴스에서 도커 이미지를 로드합니다. docker load 명령을 사용하여 이전에 복사한 이미지 아카이브 파일을 EC2 인스턴스로 가져온 후, 도커 이미지를 로드합니다.
5.도커 컨테이너 실행: EC2 인스턴스에서 도커 컨테이너를 실행합니다. docker run 명령을 사용하여 도커 이미지를 기반으로 컨테이너를 생성하고 실행할 수 있습니다. 필요한 포트 포워딩, 볼륨 마운트 등의 설정을 추가할 수도 있습니다.
Permission 에러 발생시 sudo usermod -aG docker $USER 하고 나갔다가 다시 들어와야 합니다
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get
오류 발생시
권한 부여: 대부분의 경우 docker 명령을 실행하려면 사용자가 docker 그룹에 속해야 합니다. 따라서 sudo를 사용하여 docker 명령을 실행하거나 현재 사용자를 docker 그룹에 추가해야 할 수 있습니다. 다음 명령을 실행하여 사용자를 docker 그룹에 추가할 수 있습니다:
sudo usermod -aG docker $USER
Docker 데몬 실행: Docker 데몬이 실행 중인지 확인해야 합니다. systemctl 명령을 사용하여 Docker 데몬 상태를 확인할 수 있습니다:
systemctl status docker
Docker 데몬이 실행되지 않는다면 sudo systemctl start docker 명령을 사용하여 Docker 데몬을 시작할 수 있습니다
.Docker 소켓 파일: Docker 데몬 소켓 파일(/var/run/docker.sock)의 권한을 확인해야 합니다. 소켓 파일의 소유자가 root이고, 그룹이 docker로 설정되어 있어야 합니다. 다음 명령을 사용하여 소유자와 그룹을 설정할 수 있습니다:
sudo chown root:docker /var/run/docker.sock
그리고 나서 Docker 데몬을 재시작하면 변경 사항이 적용됩니다:
sudo systemctl restart docker
'Deep Dive > DevOps' 카테고리의 다른 글
원격저장소에 푸시한 git 커밋내역 지우는 방법 (0) | 2023.07.08 |
---|---|
AWS 철통 보안 장치 만들기 - AWS 사이트 내 설정 (0) | 2023.07.06 |
RDS 생성 및 Spring과 연결 (0) | 2023.07.05 |
AWS S3 버킷 생성 (0) | 2023.07.04 |
CI/CD 구축 (0) | 2023.06.27 |