전체 글 217

Docker container 2개 이상 띄우기

ports 혹은 서비스 이름 등 중복되면 안되는 몇몇 옵션이 존재하기 때문에 중복되는 값이 있는지 확인해야 하며, 만약 특정 값이 중복되어 들어간다면 컨테이너가 정상적으로 생성되지 않거나 생성하는 과정에서 에러가 발생할 수 있음 docker-compose.yml 파일 작성해준 다음, 컨테이너 생성해주기 sudo docker compose up 여러 개 만들 때에는 특정 컨테이너가 먼저 실행되어야 하는 경우가 있음. depends_on 옵션을 사용해 컨테이너간 실행 순서를 컨트롤하면 됨. version: '3.8' services: example1: container_name: example1 image: 'httpd:latest' ports: - 80:80 depends_on: - example2 # 해..

Docker 2023.06.01

Entrypoint 활용하기

Entrypoint docker 컨테이너가 생성될 때 기본적으로 실행 할 명령어를 지정해 주는 옵션. 예를 들어, 데이터베이스를 실행시키기 위해 만든 이미지는, 컨테이너가 생성될 때 데이터베이스 서비스를 실행시켜야 하는데, 이 때 사용되는 옵션이 바로 entrypoint entrypoint는 Dockerfile과 docker-compose.yml 모두 작성 가능. 만약 Dockerfile, docker-compose.yml 모두 entrypoint가 작성되어 있다면 Dockerfile의 entrypoint는 무시되고 docker-compose.yml의 명령어가 우선적으로 수행됨. ** Dockerfile 활용하기 FROM python:3.9.15 # .pyc 파일을 생성하지 않도록 설정하기 ENV PYT..

Docker 2023.06.01

Dockerfile = Docker에서 이미지 빌드하기

Dockerfile Docker 의 이미지를 직접 생성하기 위한 용도로 작성하는 파일 Dockerfile을 작성할 때는 기본이 되는 이미지를 지정한 후, 특정 패키지를 설치하거나 파일을 추가하는 등의 작업을 통해 사용자가 직접 이미지를 빌드 사용자가 개발한 프로젝트 혹은 설정파일 등을 이미지에 포함시키거나 이미지에 기본적으로 특정 패키지를 설치하고싶을 때 등 다양한 용도로 사용함. 예를 들어 docker에서 django를 배포한다고 가정 했을 때, 기본 python 이미지를 불러온 후 django 패키지를 pip install 한 후 이미지를 생성함. ** Dockerfile 작성 # 빌드할 때 사용할 이미지를 지정함. FROM httpd:latest # 현재 경로에 존재하는 index.html 파일을 ..

Docker 2023.06.01

Docker Volume 간단히 이해

Volume 컨테이너에 저장되는 데이터의 일부를 host와 공유해 주는 역할 host에 저장 된 데이터는 사용자가 직접 삭제하지 않는 이상 계속해서 유지되며, 때문에 컨테이너가 종료된다 하더라도 데이터는 유실되지 않음 이와 같은 특성 덕분에, 컨테이너 내부에서 변경되는 내용들을 유지해야 할 때 주로 사용 Docker Volume docker 엔진이 관리하는 volume을 생성하는 방식. docker volume 방식을 사용해 생성된 volume은 host의 /var/lib/docker/volumes/ 경로에 저장 docker에서 가장 권장하는 방식 컨테이너간 파일을 공유하거나 중요도가 높은 파일들을 사용자가 쉽게 수정/삭제 하지 못하도록 할 때 주로 사용 Bind Mount docker volume 방식..

Docker 2023.06.01

Container Port Forwarding

포트 포워딩 : 외부에서 서버의 특정 포트에 접근했을 때 지정한 서비스로 전달해 주는 것 1. Docker-compose.yml version: '3.8' # docker-compose.yml에 사용될 문법 버전을 정의 services: example: # 서비스 이름을 지정합니다. 서비스 이름은 컨테이너끼리 통신할 때 사용 container_name: example # 컨테이너 이름을 지정 image: 'httpd:latest' # 컨테이너를 생성할 때 사용될 이미지를 지정 ports: # 포트포워딩 설정 - 80:80 # 외부에서 80 포트로 접속했을 때 컨테이너의 80 포트로 연결 restart: always # 컨테이너가 종료됐을 때 다시 실행 2. 컨테이너 실행 sudo docker compos..

Docker 2023.06.01

Docker compose가 무엇일까요?

정의 docker-compose는 docker 2개 이상의 컨테이너를 더욱 간편하게 관리하기 위해 사용되는 툴 docker-compose.yml (혹은 .yaml)이라는 파일에 컨테이너에서 사용 될 이미지, 옵션 등을 작성한 후 사용하게 됨. 이를 통해 docker 명령어만 사용할 때보다 여러 컨테이너를 더 간편하고 직관적으로 컨테이너를 관리할 수 있다. 실행할 때 사용자가 작성한 docker-compose.yml 파일의 내용에 맞게 컨테이너를 설정하고 실행하게 되기에, docker-compose.yml 파일이 존재하지 않는 경로에서 docker compose 명령어를 실행시킬 경우 에러가 발생할 수 있다. 설치 sudo mkdir -p /usr/lib/docker/cli-plugins # /usr/li..

Docker 2023.06.01

Lv.2 피로도

코딩테스트 연습 - 피로도 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr A2 팀원들끼리 함께 풀어본 오늘의 문제. 카테고리부터 완전탐색인만큼 그에 맞게 풀어보았다. 마침 어제 BFS, DFS를 공부했는데, 적을 것이 너무 많아서 정리하지도 못했다. 바쁘다 바빠 이번 문제는 알짜배기니까 완전탐색에 대해 공부하신 분들이라면 먼저 풀어보시는 것이 좋을 것 같다. 1. BFS 풀이법 (deque) # BFS를 이용한 문제풀이 # deque 사용 # queue 개념과 BFS 개념 인지 필요 from col..

cording test 2023.05.31

LV.1 대충 만든 자판

코딩테스트 연습 - 대충 만든 자판 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 문제답게 역시 지저분하다. 문제를 제대로 읽지 않으면 수많은 에러에 갇히기 때문에 반드시 조건들을 잘 읽어볼 것. 솔직히 빨리 풀어보고 싶었는데, 도저히 for 문 말고는 생각나는 게 없다. 그 안에서 함수에 따라 리팩토링하는 방법밖에 존재하지 않아서.. 조건이 많기 때문에 조건의 순서를, 조건의 방식을 어떻게 풀어낼지가 큰 관건이다. def solution(keymap, targets): answer = []..

cording test 2023.05.31

5월 4주차 WIL

이번 주에 한 것 인천주막 프로젝트 페이지네이션 생성 상세페이지 구현 시도 성공한 것 팀 내부 화합 서버에서 페이지네이션, 테스트코드 등을 구현 깃 모지를 통한 commit 성공적 기획 구체화 아쉬운 것 심각한 JS 능력 자신감과 실력 부족으로 인한 참여도 하락 보완할 점 테스트코드, JS 공부하기 CSS 자료 모아서 외워버리기 JS에서 HTML 파일을 GET하는 것을 연습하기 DB 연구하기 DOCKER을 통한 배포 연습

Weekend I learned 2023.05.30