간단 설명
목록 | 설명 |
Dockerfile | Dockerfile은 도커 이미지를 빌드하기 위한 빌드 지시사항들을 포함한 텍스트 파일입니다. Dockerfile은 컨테이너 이미지를 구성하는 데 필요한 모든 단계와 명령을 정의합니다. |
.dockerignore | 도커 빌드 과정에서 제외할 파일과 디렉토리를 지정하는 파일입니다. Dockerfile을 작성할 때 모든 파일이나 디렉토리를 이미지에 포함시키는 것은 필요하지 않을 수 있습니다. 특정 파일이나 디렉토리를 이미지 빌드 과정에서 제외할 수 있습니다. |
docker-compose | 여러 컨테이너로 구성된 멀티 컨테이너 애플리케이션을 정의하고 구성하기 위해 사용되는 도구입니다. 애플리케이션의 서비스, 네트워크, 볼륨, 환경 변수 등을 정의할 수 있습니다. |
Docker 설치하기
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
종속성 설치
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
리포지토리 GPG키를 가져와서 시스템에 등록합니다.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Docker 설치하기
apt list -a docker-ce
설치 가능한 버전 확인
sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
특정 버전 입력하여 설치하기
# 서비스 상태
sudo service docker status
# 서비스 시작
sudo service docker start
# 서비스 재시작
sudo service docker restart
# 서비스 중단
sudo service docker stop
서비스 상태 명령어
Docker 완전삭제
docker container stop $(docker container ls -aq)
docker system prune -a --volumes
도커 이미지, 볼륨 등 중단 및 제거
# Docker 삭제
sudo apt purge -y docker-engine docker docker.io docker-ce docker-ce-cli
sudo apt autoremove -y --purge docker-engine docker docker.io docker-ce
# 잔여 폴더 및 파일 삭제
sudo rm -rf /var/lib/docker /etc/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo rm -rf /var/run/docker.sock
Docker 제거
Dockerfile 파일 만들기
위 사진처럼 프로젝트 폴더 내부에 "Dockerfile" 이름으로 파일을 만들면 됩니다.
# Node Stable 18.16.0 경량화(alpine) 버전
FROM node:18.16.0-alpine
# 디렉토리 지정
WORKDIR /home/ubuntu/inepung-nextjs-typescript-frontend2
# 의존성 설치
# package.json, yarn.lock 복사
COPY package.json ./
COPY yarn.lock ./
# 패키지 설치
RUN yarn
# 필요한 모든 파일을 복사
COPY . .
# NextJS 빌드
RUN yarn build
# 컨테이너 포트 3000 설정
EXPOSE 3000
# 실행
CMD [ "yarn", "start" ]
위 내용을 넣어 저장해줍니다. 필요한 경우 부분 수정하여 사용하시면 됩니다.
"Dockerfile"과 같이 내부에 ".dockerignore" 파일을 만들어줍니다.
node_modules
.next
패키지를 설치하기 때문에 위 폴더를 예외처리 합니다.
Docker Image 생성
docker build -t test .
"-t" 태그 옵션으로 "test" 이미지 이름을 주고 마지막 "." 점 표시는 경로를 의미합니다.
docker images
이미지 리스트 확인
자주사용하는 명령어
명령어 | 설명 |
docker images | 현재 시스템에 저장된 도커 이미지 목록을 표시합니다. 이미지의 REPOSITORY(저장소), TAG(태그), IMAGE ID(이미지 식별자), CREATED(생성일자), SIZE(크기) 등의 정보를 제공합니다. |
docker pull 이미지명:태그 | 도커 허브나 도커 레지스트리에서 특정 이미지를 다운로드합니다. 이미지명과 태그를 지정하여 원하는 이미지를 가져올 수 있습니다. |
docker build -t 이미지명:태그 . | Dockerfile을 기반으로 도커 이미지를 빌드합니다. -t 옵션을 사용하여 이미지에 이름과 태그를 지정합니다. "." 점은 현재 디렉토리에 있는 Dockerfile을 사용한다는 의미입니다. |
docker push 이미지명:태그 | 로컬에서 빌드한 도커 이미지를 도커 레지스트리에 업로드합니다. 이미지명과 태그를 지정하여 업로드할 이미지를 지정합니다. |
docker tag 이전이미지명:태그 새이미지명:새태그 | 기존의 이미지에 새로운 이름과 태그를 지정하여 이미지를 태깅합니다. 이미지를 다른 태그로 복사하거나, 이미지에 다른 이름과 태그를 부여할 때 사용합니다. |
docker rmi 이미지명:태그 | 특정 도커 이미지를 삭제합니다. 이미지명과 태그를 지정하여 삭제할 이미지를 선택합니다. 이미지를 삭제하기 전에 해당 이미지를 사용하는 모든 컨테이너를 중지(stop)해야 합니다. |
docker save -o 저장할파일명 이미지명:태그 | 도커 이미지를 파일로 저장합니다. 이미지명과 태그를 지정하여 저장할 이미지를 선택합니다. |
docker load -i 파일명 | 저장된 도커 이미지 파일을 로드하여 시스템에 이미지를 추가합니다. 파일명은 docker save로 저장한 이미지 파일입니다. |
Docker Run 하기
docker run -d -p 3000:3000 test
Docker 실행하기 "-d"는 백그라운드 실행입니다. 해당 명령어가 없으면 실행 로그가 화면 보이고 이탈하면 실행이 꺼져서 유지가 되지 않습니다. 직접적으로 확인할때 사용하시면 될것 같습니다. "-p"는 포트를 지정하여 컨테이너간의 포트를 매핑합니다. "test"는 실행 컨테이너 이름 입니다.
자주사용하는 명령어
명령어 | 설명 |
-d 또는 --detach | 컨테이너를 백그라운드에서 실행합니다. 컨테이너를 실행한 후 바로 프롬프트로 돌아갑니다. |
-p 호스트포트:컨테이네포트 또는 --publish 호스트포트:컨테이네포트 | 호스트와 컨테이너 간의 포트 매핑을 설정합니다. 호스트의 특정 포트와 컨테이너의 포트를 연결하여 외부에서 컨테이너에 접근할 수 있도록 합니다. |
-v 호스트경로:컨테이네경로 또는 --volume 호스트경로:컨테이네경로 | 호스트와 컨테이너 간의 볼륨 매핑을 설정합니다. 호스트의 특정 경로와 컨테이너의 경로를 연결하여 데이터를 주고받을 수 있도록 합니다. |
--name | 컨테이너에 이름을 지정합니다. 사용자 정의 이름을 지정하여 컨테이너를 식별할 수 있습니다. |
-e 또는 --env | 컨테이너에 환경 변수를 설정합니다. 컨테이너 내부에서 사용할 수 있는 환경 변수를 지정합니다. |
--network | 컨테이너가 속할 네트워크를 지정합니다. 여러 개의 컨테이너가 동일한 네트워크에 속해 있으면 서로 통신이 가능합니다. |
--rm | 컨테이너 실행이 종료되면 자동으로 컨테이너를 제거합니다. 컨테이너의 임시 사용을 위해 유용합니다. |
--restart | 컨테이너의 재시작 정책을 지정합니다. 컨테이너가 비정상적으로 종료되었을 때 자동으로 재시작하도록 설정할 수 있습니다. |
-it | 컨테이너와 상호 작용하기 위해 터미널을 사용합니다. 컨테이너의 표준 입력(STDIN)을 열고, 터미널 인터페이스를 제공합니다. |
Docker-Compose 설치하기
sudo curl -sSL "https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Docker Compose 설치하기
chmod +x /usr/local/bin/docker-compose
권한 부여
docker-compose --version
버전 확인
Docker-Compose 사용하기
version: '3.9'
services:
web:
container_name: 'test'
restart: 'on-failure'
build:
context: .
dockerfile: Dockerfile
command: yarn start
volumes:
- '.:/app'
- '/home/ubuntu/test/node_modules'
- '/home/ubuntu/test/.next'
ports:
- '3000:3000'
environment:
NODE_ENV: production
내부 프로젝트 폴더에 "docker-compose.yml" 파일 만든 후 내용 넣기
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
Docker-Compose 이미지 생성
docker-compose up -d
Docker-Compose 실행 "-d"는 백그라운드 모드 입니다.
자주사용하는 명령어
명령어 | 설명 |
docker-compose up | 컨테이너 실행 및 빌드 -d 또는 --detach: 백그라운드에서 컨테이너를 실행합니다. --build: 이미지를 빌드하고 컨테이너를 실행합니다. --force-recreate: 컨테이너를 강제로 다시 생성합니다. |
docker-compose down | 컨테이너 정지 및 삭제 -v 또는 --volumes: 컨테이너와 관련된 볼륨도 함께 삭제합니다. --rmi: 컨테이너에 대한 이미지도 함께 삭제합니다. |
docker-compose start | 정지된 컨테이너 시작 -d 또는 --detach: 백그라운드에서 컨테이너를 시작합니다. |
docker-compose stop | 실행 중인 컨테이너 정지 -t 또는 --timeout: 컨테이너가 정지되기까지 대기하는 시간을 지정합니다. |
docker-compose restart | 컨테이너 재시작 -t 또는 --timeout: 컨테이너가 재시작되기까지 대기하는 시간을 지정합니다. |
docker-compose pause | 실행 중인 컨테이너 일시 정지 컨테이너의 실행을 일시적으로 중지합니다. |
docker-compose unpause | 일시 정지된 컨테이너 재개 일시 정지된 컨테이너의 실행을 재개합니다. |
728x90
사업자 정보 표시
레플라 | 홍대기 | 경기도 부천시 부일로 519 화신오피스텔 1404호 | 사업자 등록번호 : 726-04-01977 | TEL : 070-8800-6071 | Mail : support@reafla.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'React > Next.js' 카테고리의 다른 글
[NextJS] NextJS14 앱 라우터의 일반적인 실수와 해결 방법 정리 (번역) (0) | 2024.07.10 |
---|---|
[NextJS] Isotope-layout `window is not define` 오류 해결하기 (0) | 2023.01.01 |
[NextJS] Swiper `swiper.params.navigation undefined` 해결하기 (0) | 2022.12.17 |