[Docker] vi: command not found 에러 해결
2022. 12. 2. 17:07
Docker
들어가며 도커 컨테이너 기반 프로젝트 환경에서 도커 컨테이너에 직접 접속한 후 파일을 열어봐야 하는 경우가 상당수 발생했습니다. 그러기 위해서는 vim 을 사용해야 했는데요. 도커 컨테이너 접속 후 vi [파일 이름] 명령을 실행하면 vi: command not found 에러가 자주 발생했습니다. 해결법을 잊지 않기 위해 이 게시글을 통해 기록으로 남깁니다. 에러 발생 상황 docker exec -it [docker container name] bash 명령을 실행해 도커 컨테이너에 bash 모드로 접속합니다. 특정 파일을 열어보기 위해 cd 명령을 사용해 특정 파일이 위치한 디렉토리에 접근합니다. vi [파일 이름] 명령을 실행해 Read 하고자 하는 파일을 엽니다. 이 명령을 실행하던 도중 vi: ..
Docker Volume 및 Docker 로 MySql 컨테이너 설정, 데이터 영구 저장
2022. 12. 1. 19:09
Docker
들어가며 이번 게시글에서는 Docker Volume 에 대한 이해 및 MySql 을 Docker 컨테이너로 세팅하고 데이터베이스 데이터를 영구적으로 저장하는 방법을 알아보고자 합니다. Docker Volume Docker 컨테이너에 저장되는 데이터는 기본적으로 Docker 컨테이너가 삭제될 때 함께 사라집니다. 그러나 MySql 컨테이너와 같이 DB를 구동하는 컨테이너에서는 Docker 컨테이너의 생성, 삭제 여부에 관계없이 데이터를 영속적으로 저장해야 합니다. 이렇게 Docker 컨테이너의 생성, 삭제 여부와 관계없이 데이터를 영속적으로 저장할 수 있도록 Docker는 두가지 옵션을 제공합니다. 그 중 하나가 바로 Docker Volume 입니다. Docker Volume 과 관련된 명령어는 다음과 같..
로컬에서 Docker 를 이용한 Express 서버 어플리케이션 개발
2022. 12. 1. 17:00
Docker
들어가며 이번 게시글에서 어떻게 Express 서버 어플리케이션을 Docker를 이용해서 컨테이너화 후 가동하고, 어떻게 로컬에서 작업한 코드 변경사항이 현재 가동되고 있는 Express 서버 컨테이너에 즉시 반영될 수 있는지에 대해서 알아보도록 하겠습니다. Express 서버 어플리케이션 작성 원하는 위치에 디렉토리 생성 후 그 안에 package.json 파일 생성 $ mkdir demo && cd demo $ npm init -y npm 을 통해 Express 패키지 설치 $ npm install express index.js 파일 생성 후 간단한 Express 서버 코드 작성 index.js const express = require("express"); const app = express(); ..
[Docker 적용] MySQL 서비스 컨테이너에 .sql 파일 Import 후 데이터베이스에 적용하기
2022. 11. 15. 16:49
포트폴리오/JJINCAFE IN SEOUL
들어가며 이후의 나에게 혹은 같은 상황을 겪는 다른 사람에게 도움이 되고자 MySQL 서비스 컨테이너에 DB 데이터 백업 파일을 Import 후 데이터베이스에 적용한 과정을 기록으로 남깁니다. Import 하려는 파일 정보 및 위치 현재 배포 서버의 루트 디렉토리 내 3_backend_ron_cafe_curation_db_data 디렉토리에 백업해 둔 DB 데이터가 기록된 .sql 파일이 있습니다. pwd 명령 실행 시 현재 디렉토리의 위치를 보여줍니다. ls 명령 실행 시 현재 디렉토리 내부에 존재하는 모든 파일 목록을 보여줍니다. 호스트에서 MySQL 서비스 컨테이너로 파일 Import 3_backend_ron_cafe_curation_db_data 디렉토리의 하위 파일들을 MySQL 서비스 컨테이너..
계속해서 restart 상태인 컨테이너 디버깅하기
2022. 11. 10. 17:47
Docker
상황 docker-compose up -d --build 명령을 실행해 nginx 웹서버, express 서버, mysql 서버 컨테이너를 띄웠습니다. docker ps -a 명령을 실행해 현재 실행되고 있는 도커 컨테이너 목록을 체크했습니다. 체크한 결과, express 서버 컨테이너는 계속 restarting 상태인 것이 확인되었습니다. 왜 restarting 이 계속 되고 있는지 도대체 어떤 게 문제가 있는지 전혀 알지 못해 답답했습니다. restarting 상태인 컨테이너 로그는 어떻게 볼 수 있을까? 찾아보니 아래와 같이 명령을 실행하면 된다는 것을 알게 되었습니다. 같은 상황이 이후 발생했을 때 잊지 않고자 이렇게 기록을 남깁니다. 해결책 로그 확인할 도커 컨테이너 ID 확인 docker ps..
RUN, CMD, ENTRYPOINT 명령어 개념과 차이점
2022. 11. 9. 20:32
Docker
Dockerfile 작성 시 사용되는 명령문 중 실행과 관련된 명령어는 RUN, CMD, ENTRYPOINT 가 있습니다. RUN RUN 명령문은 쉘(shell)에서 커맨드를 실행하는 것처럼 이미지 빌드 과정에서 필요한 커맨드를 실행하기 위해 사용됩니다. 보통 이미지 안에 특정 소프트웨어를 설치하기 위해 많이 사용됩니다. FROM node:16 RUN mkdir -p /app WORKDIR /app COPY package*.json ./ # local machine 에서 npm install 실행 RUN npm install 실행 시점 : 도커 이미지 빌드 ENTRYPOINT ENTRYPOINT 명령문은 CMD 명령문과 비슷하지만, 컨테이너를 띄울 때 항상 실행되어야 하는 커맨드를 지정할 때 사용합니다...