반응형 DevOps 관련12 [AWS] EC2 인스턴스에 Docker 파일 실행(Frontend, Backend) 1. AWS EC2 인스턴스 생성 2. EC2 인스턴스에 .pem등 key파일을 이용하여 ssh 접속(사전에 .pem 파일 사용권한 400 필요) 3. EC2 인스턴스에 Docker 설치 2023.09.13 - [DevOps 관련/Docker] - [Docker] 우분투(AWS EC2)에 Docker 설치하기 [Docker] 우분투(AWS EC2)에 Docker 설치하기 1. 웹사이트의 자동 설치 스크립트 사용 $ curl -s https://get.docker.com | sudo sh # or $ sudo wget -q0- https://get.docker.com | sh https://get.docker.com 페이지에 있는 우분투 사용자를 위한 설치스크립트로 설치한다. 2 kfdd6630.tisto.. 2024. 1. 3. [Docker] Docker run 옵션 Docker 컨테이너 생성과 동시에 실행할 때 docker run [이미지 이름 = REPOSITORY] 위 옵션 자리에 들어갈 수 있는 옵션은 아래와 같다. -i, --interactive 표준 입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지한다. 보통 이 옵션을 사용하여 Bash 에 명령을 입력한다. -t, --tty TTY 모드(pseudo-TTY)를 사용한다. Bash를 사용하려면 이 옵션을 설정해야 한다. 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 쉘이 표시되지 않는다. --name [컨테이너 이름] 컨테이너 이름을 설정한다. -p, --publish 호스트와 컨테이너의 포트를 연결한다. (= 포트포워딩) : ex) -p 80:80 .. 2024. 1. 2. [Docker & Svelte + SvelteKit] 도커 이미지 최적화 일반적인 도커파일 방식 # 빌드에 필요한 모든 파일 COPY package.json . COPY package-lock.json . COPY pnpm-lock.yaml . COPY svelte.config.js . COPY vite.config.ts . # 빌드에 필요한 모든 폴더 COPY . . RUN npm i RUN pnpm install —frozen-lockfile RUN pnpm build EXPOSE 3000 CMD ["node", "build"] 위 방식에서 node_module을 포함한 docker 이미지를 만드는데 필요한 것을 다단계로 나누어 배포한다. FROM node:18-alpine AS builder WORKDIR /app COPY package*.json . RUN npm ci.. 2023. 9. 14. [Docker] 우분투(AWS EC2)에 Docker 설치하기 1. 웹사이트의 자동 설치 스크립트 사용 $ curl -s https://get.docker.com | sudo sh # or $ sudo wget -q0- https://get.docker.com | sh https://get.docker.com 페이지에 있는 우분투 사용자를 위한 설치스크립트로 설치한다. 2. 우분투 패키지 이용 $ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /user/local/bin/docker 위 2줄은 apt-get 업데이트 및 docker.io 설치 마지막 줄은 /user/bin/docker/io파일을 docker 바이너리로 링크해서 사용하는 명령어이다. 설치가 완료.. 2023. 9. 13. [Docker] Mac에서 AWS EC2에 도커올리기 arm기반 아키텍처에서 amd 기반 아키텍처로 도커파일만들기 MAC OS는 기본적으로 arm기반 아키텍처이기 때문에 m1 노트북으로 도커파일을 빌드하여 도커이미지를 생성하면 platform이 linux/arm64으로 된다. 일반적으로 Amazon linux 운영체제를 사용하는 AWS EC2는 linux/arm64가 아닌 linux/amd64 이기 때문에 MAC에서 빌드한 이미지를 EC2 에서 사용하려면 빌드 단계에서 --platform 옵션으로 linux/arm64로 지정해줘야 한다. 현재 생성된 도커이미지의 아키텍처 확인 $ docker image inspect | grep Architecture linux/amd64 로 빌드하기 $ docker build --platform linux/amd64 -t.. 2023. 9. 12. [Docker] Sveltekit 빌드 시 build폴더 생성 안될 때 (Dockerfile 오류) svelteKit에서 dockerfile을 사용해 docker 파일을 만들려고할 때 생기는 이슈 일단 svelte.config.js 파일에서 별도로 빌드 경로를 지정해 주지 않는이상 .svelte-kit 에만 빌드 파일이 만들어진다. dockerfile에서 sveltekit예제를 보면 node build/index.js 명령어를 치는데 build폴더가 존재하지 않아 명령어가 실행되지 않는다. svelte에서는 svelte.config.js 파일의 어댑터를 노드로 설정을 해야한다 그래 어댑터가 오토로 되어 있어서 자동으로 build파일을 생성해준다. 하지만 svelteKit 프로젝트를 node서버에 올리기 위해 build 폴더가 필요하기 때문에 아래 명령어를 실행해준다. npm i -D @sveltejs/.. 2023. 9. 11. [Docker] Windows 10에서 Docker Desktop 사용 시, 'Cannot enable Hyper-V service' 에러 해결 분명 PC의 Hyper-V가 켜져있을 때, Docker를 실행했을 때 에러 Cannot enable Hyper-V service Cannot enable Hyper-V service에러가 발생한다. 해결방법 -> 아래 2가지가 전부 되어야 함 1. 진짜 Hyper-V 문제라면 혹시 PC 바이오스 설정에서 가상화가 켜져있는지 확인한다. 윈도우 진입시 f2를 눌러 바이오스 설정 -> cpu virtualization을 on해준다. 2. 가상 머신 플랫폼 Hyper-V 켜기 먼저 맨 하단 윈도우 아이콘에 마우스 우클릭을 해주자. 빨간색으로 표시한 [앱 및 기능]으로 진입한다. 우측 관련설정에서 [프로그램 및 기능 을 눌러주자. 그러면 과거의 윈도우 스타일의 화면이 뜬다. 프로그램 및 기능 여기서 'Window.. 2023. 9. 10. [Docker] DockerHub에 이미지 push하는 방법 과정 1. docker image를 container image로 변경 2. docker hub로 push - Docker image 조회 docker images $ docker images 결과값: original image - Docker image 실행 및 컨테이너 생성 $ docker run -d -i -t --name [생성할 컨테이너 name 설정] -p [ host port : container port ] [ image name or ID] 예) docker run -d -i -t --name containerName -p 8080:3000 "original image의 아이디" - Docker container 조회 $ docker ps 결과값: continer ID - Docker c.. 2023. 9. 8. [AWS] ssh config 파일 구성 Host aws-ec2 HostName [퍼블릭 IPv4 DNS] User ec2-user IdentityFile [.pem 파일 경로] Host : 접속할 정보 입력한 정보로 ssh 접속 시 $ssh dev 명령 시 아래 접속 정보로 ssh 접속이 실행 ( 별칭 느낌 ) HostName : 연결될 서버 호스트 명 (미 설정시 Host값이 HostName으로 사용됨) User : 네트워크 커넥션에 사용되는 계정 명 IdentityFile : 키 파일 위치 2023. 9. 7. [AWS] AWS의 pem파일 window os에서 chmod 400하기 pem file 위치에서 실행해야 한다. secret.pem은 pem파일의 이름이다. - 명령프롬프트(CMD)로 실행 icacls.exe .\secret.pem /reset icacls.exe .\secret.pem /grant:r "%username%":"(R)" icacls.exe .\secret.pem /inheritance:r - powershell로 실행 icacls.exe .\secret.pem /reset icacls.exe .\secret.pem /grant:r "$($env:username):(r)" icacls.exe .\secret.pem /inheritance:r 2023. 9. 6. 이전 1 2 다음 반응형