본문 바로가기
반응형

DevOps 관련/Docker9

[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.
[Docker & NestJS] 다단계 도커를 이용한 이미지 크기 줄이고 이미지 생성 이미지 크기를 줄이는 방법: 다단계 도커를 활용하여 효율적으로 이미지를 만든 포스팅 https://www.tomray.dev/nestjs-docker-production Ultimate Guide: NestJS Dockerfile For Production [2022] Learn how to write a Dockerfile that creates a production optimized image using the NodeJS Alpine image and multistage builds. www.tomray.dev 해당 내용을 프로젝트에 맞게 일부 수정한 후 새롭게 이미지를 빌드해보니 이미지 크기가 절반으로 줄어든다. FROM node:18-alpine AS base RUN apk add --no-c.. 2023. 9. 5.
[Docker] 도커 기본 명령어 모음 1. Docker 이미지 검색 docker images 현재 존재하는 이미지들을 출력하는 명령어 2. Docker 단일 이미지 삭제 docker image rm [image ID] 해당 이미지를 CONTAINER에서 사용하고 있으면 삭제할 수 없다. 3. Docker 모든 이미지 삭제 docker rmi $(docker images -q) -f (docker image -q)라는 명령어는 이미지의 ID를 출력하는 명령어 4. Docker 컨테이너 생성 docker create --name [CONTAINER ID] [REPOSITORY] 실행을 하는 것이 아니기 때문에 옵션은 -it까지만 허용 5. 컨테이너 접속 docker exec -it [CONTAINER ID] /bin/bash 6. Docker .. 2023. 9. 4.
반응형