분류 전체보기 110

[Docker] 도커 이미지 만드는 법! (feat. Dockerfile)

이 글은 2024 05월 원티드 프리온보딩 BE 챌린지 '도커'편 2주차 수업을 회고하며 정리한 글입니다. 지난 번 포스팅들에서는 이미지들을 도커 허브와 같은 레지스트리에서 다운받아 실행시키는 방법들을 알아봤다. 이번 포스팅에서는 이미지를 다운받아서만 실행하는 게 아닌, '나만의' 이미지를 만들어서 실행시키는 방법은 뭐가 있을지 정리해보려 한다. 이미지 만드는 방법방법은 크게 두 가지이다.  첫째, 우리가 쓰는 컨테이너를 대상으로 commit 명령어를 주어 컨테이너를 이미지화 시킨다.둘째, 도커 파일(Dockerfile, 제목에 써져 있는 그것 맞습니다)을 작성하는 것이다. 도커파일은 대충 이렇게 생겼다. (자세한 정의 및 의미는 이따 알아보도록 하고)FROM python:3.8-slimWORKDIR /..

[Docker] 도커 build 에러 (ERROR: failed to solve: failed to read dockerfile:) 해결

문제Docker 이미지를 만들어서 빌드를 진행하려는데 다음과 같은 에러 메시지를 자꾸 뱉어내면서 빌드에 실패했다.ERROR: failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount1306494732/Dockerfile: no such file or directory 원인구글링도 해보고 우분투 홈페이지에도 들어가보고 도커 공식문서도 보고 스택오버플로우도 봤는데 왕왕 보이는 문제가 이 세 개 였다. 1. 파일 이름이 잘못됨2. 파일 경로가 잘못됨3. 터미널을 관리자 권한으로 실행해야 함 첫 번째로 파일 이름은, Dockerfile이 정석적인 이름인데 DockerFile이나 Dockefile 등등 이름의 대/소문자를..

[Docker] Dockerfile에서 명령어 순서가 중요한 이유 (w/ 도커 이미지 레이어 구조)

Dockerfile이란?도커파일로 이미지를 만들어보기 전에, 도커 파일이 무엇인지 자세히 알아보고 가자. 도커 파일이란?도커 이미지를 빌드하고 설정하는 데 사용되는 텍스트 파일도커 이미지를 어떻게 구성할지를 정의함도커 이미지를 만들기 위한 명령어와 설정 정보를 담고 있음베이스 이미지빌드 시 실행할 명령어복사할 파일환경 변수공식 문서를 참조해서 도커 파일 속 용어들의 의미를 가지고 와 봤다.FROM: 베이스 이미지 선정반드시! 있어야 하는 명령어여러겹의 이미지를 쌓아 가는데, 그 층 중 가장 기본이 되는 이미지WORKDIR: work directory 선정도커파일 뒤에 오는 모든 지시자(RUN, CMD, COPY, ADD 등)에 대한 작업 디렉토리를 설정리눅스 명령어의 cd와 비슷한 역할COPY: 복사할 ..

[programmers lv1.python] 기사단원의 무기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제1차 풀이(❌)def solution(number, limit, power): divisors = [] for i in range(1, number + 1): count = 0 for j in range(1, i + 1): if i % j == 0: count += 1 divisors.append(cou..

[programmers/python] 무작위로 k개의 수 뽑기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/181858 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제첫 번째 풀이 (❌)def solution(arr, k): answer = list(set(arr))[:k] length = len(answer) if length  로직은 잘 만들었는데, 문제 마지막의 예외처리를 잘못했음을 알 수 있었다. 리스트를 확장시켜야 하는데 리스트 요소 추가 메서드를 헷갈려서 리스트 안에 리스트를 또 만들어버렸다 ㅎ([0, 1, [-1, -1]])..

[Python] 리스트 append 와 extend의 차이

다들 알다시피 append와 extend는 리스트에 요소를 추가하는 메서드다. 알고리즘 문제를 풀다가 extend를 썼어야 할 때에 append를 써서 틀려 이번 기회에 뭐가 다른지 차이점을 확실히 짚고 넘어가고 싶어 포스팅한다. ✏️append(x)append 메서드는 리스트 끝에 요소를 그대로 추가한다. 추가되는 요소는 리스트의 마지막에 추가된다. lst = [1, 2, 3]lst.append(4)print(lst) # 출력: [1, 2, 3, 4] ✏️extend(iterable)반면 extend 메서드는 리스트 끝에 다른 리스트의 모든 요소를 추가한다. 추가되는 요소들은 리스트의 마지막에 순서대로 추가된다. 여기서 iterable은 리스트, 튜플, 문자열 등과 같은 반복 가능한 객체이다.lst1..

[Python] 알고리즘 문제 풀다 발견한 대소문자 바꾸기 메서드.. 우리의 시간을 아끼자 ^ㅡ^

프로그래머스 코딩 기초 트레이닝 문제를 풀던 중 발견한 좋은 메서드가 있어서 공유 & 기억 차 쓰는 글이다. 문제인 즉 이 문제였다 '대소문자 바꾸기'https://school.programmers.co.kr/learn/courses/30/lessons/181949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr aBcDeFg 를 AbCdEfG 로 바꿔서 출력하면 되는 문제.주어진 건 str = input() 뿐이었고 어떻게 할까 하다가 대문자 소문자, 소문자 대문자로 바꿔주는 함수를 만든 후 입력값에 적용시켜 print 하도록 하는 코드를 만들고 실행시키니 ..

[Docker] 도커 컨테이너 명령어 실행 (pwd, exec, -it, /bin/sh)

이전 포스팅에선, 우리가 만든 컨테이너에 접속해서 그 안의 index.html 파일을 읽어 띄우는 작업을 해봤다. [Docker] 도커 포트 포워딩하기 (웹서비스 사용하기)이 글은 2024 05월 원티드 프리온보딩 BE 챌린지 프로그램 도커편 1회차 수업을 회고하며 정리한 글입니다.들어가기 전, 네트워크 관련 기본 용어들을 짚고 넘어가도록 하겠다.네트워크 기본 용어developer-jinnie.tistory.com 이번 포스팅에선, 그 컨테이너 안으로 들어가서 -> index.html 파일을 편집해 커스텀해보는 작업을 해본다. 도커 데스크탑으로 하는 방법과 커맨드라인으로 하는 방법 두 개 다 살펴볼 계획. 크게 1. 컨테이너 안으로 들어가기2. 들어가서 파일 수정하기' 로 나뉜다.1. 일단 호스트 상태에..