도커 컨테이너 환경변수 주입
·
Docker
들어가며 현재 예전에 진행했었던 프로젝트 시스템 구성을 도커 컨테이너 환경으로 전환하는 과정에 있는데요. express 서버 구성용 도커 이미지를 생성하는 과정에서 분명 환경 변수 파일이 저장되어 있는 디렉토리(envs) 또한 복사해 가도록 명령 구성을 했습니다. express 서버 컨테이너의 bash 창에 접근해 ls 명령을 실행해 현재 위치에 존재하는 디렉토리 및 파일 목록을 확인했는데요. envs 디렉토리가 존재하는 것이 확인되었으나, cd envs 명령과 ls 명령을 실행한 결과 envs 디렉토리 안에는 아무 파일도 존재하지 않는 걸 확인했습니다. 왜 환경변수 파일만 복사되지 않는지 그 이유를 찾지 못했습니다. 계속 헤매는 대신 환경변수 파일을 express 서버 컨테이너에게 전달해줄 다른 방법을..
계속해서 restart 상태인 컨테이너 디버깅하기
·
Docker
상황 docker-compose up -d --build 명령을 실행해 nginx 웹서버, express 서버, mysql 서버 컨테이너를 띄웠습니다. docker ps -a 명령을 실행해 현재 실행되고 있는 도커 컨테이너 목록을 체크했습니다. 체크한 결과, express 서버 컨테이너는 계속 restarting 상태인 것이 확인되었습니다. 왜 restarting 이 계속 되고 있는지 도대체 어떤 게 문제가 있는지 전혀 알지 못해 답답했습니다. restarting 상태인 컨테이너 로그는 어떻게 볼 수 있을까? 찾아보니 아래와 같이 명령을 실행하면 된다는 것을 알게 되었습니다. 같은 상황이 이후 발생했을 때 잊지 않고자 이렇게 기록을 남깁니다. 해결책 로그 확인할 도커 컨테이너 ID 확인 docker ps..
[Error] unable to start container process: exec: "bash"
·
Docker
상황 컨테이너 접속 node 컨테이너에 주입된 env 변수 목록을 확인하기 위해 node 컨테이너의 bash 창에 접근하려고 했으나, 위와 같은 오류가 발생했습니다. 해결 Docker 이미지가 Alpine 이라면 bash 를 지원하지 않을 수도 있다고 합니다. 대신 /bin/sh 로 컨테이너에 접속하면 된다고 합니다. /bin/sh 로 컨테이너에 접속 env 명령어 실행 결과 다음과 같이 node 컨테이너에 주입된 env 변수 목록을 확인하실 수 있습니다.
Docker Compose 개념과 사용하는 이유
·
Docker
Docker Compose 란? Docker Compose 란 여러 개의 컨테이너들을 관리, 실행하기 위한 "툴" 로, 각각 독립된 컨테이너의 실행을 정의합니다. Docker Compose 는 왜 필요한가? 도커 컨테이너끼리 연결을 편하게 하기 위해서 github 에서 express 서버 구성 코드를 pull 받고, 이를 컨테이너화하기 위해 다음과 같이 build 할 수 있습니다. $ docker build -t express-demo . 이제 express-demo 컨테이너를 실행하고, DB로 mysql 컨테이너를 실행해보겠습니다. express-demo 컨테이너 실행 $ docker run --name express -d -p 8080:8080 express-demo mysql 컨테이너 실행 $ do..
RUN, CMD, ENTRYPOINT 명령어 개념과 차이점
·
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 명령문과 비슷하지만, 컨테이너를 띄울 때 항상 실행되어야 하는 커맨드를 지정할 때 사용합니다...
자료구조의 구분
·
컴퓨터 과학/자료구조
자료구조는 크게 선형 자료 구조와 비선형 자료 구조로 구분할 수 있습니다. 선형 자료 구조 선형 자료 구조는 요소가 일렬로 나열되어 있는 자료 구조입니다. 선형 자료 구조로는 연결 리스트, 배열, 벡터, 스택, 큐 등이 있습니다. 비선형 자료 구조 비선형 자료 구조는 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 자료 구조입니다. 비선형 자료 구조로는 그래프, 트리, 힙, 우선순위 큐, 맵, 셋, 해시 테이블 등이 있습니다. 앞으로 하나씩 공부하며 포스팅할 계획입니다. 참조 면접을 위한 CS 전공지식 노트 chapter 5 자료구조