window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() 도커 레슨 학습 방법 - The Codest
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2018-09-09
소프트웨어 개발

도커 학습 방법

다위드 폴클로펙

저희가 준비한 애플리케이션이 크게 확장된 것을 알게 된 이후, 저는 출시 프로세스를 자동화할 수 있는 완전히 새로운 방법을 찾기로 결정했습니다. 새로운 기능을 개별적으로 활성화할 수 있는 솔루션을 찾는 것이 중요했습니다.

소개

더 간단한 프로세스 자동화 방법을 발견하면 제 업무뿐만 아니라 전체 팀의 업무가 크게 개선될 것입니다. 팀. "도커를 사용하면 어떨까?"라고 생각했습니다.

준비 단계에서 저는 프런트엔드 애플리케이션용 설정과 API용 설정 두 가지를 만들었습니다. 아래에서 개발 과정에서 제가 배운 내용을 프레젠테이션으로 볼 수 있습니다.

첫 번째 문제

컨테이너에 복제된 리포지토리를 갖고 싶어서 Docker파일에서 ADD 명령을 통해 ssh 키를 추가했습니다:

ADD ~/.ssh/testowy

그리고 펑! 파일을 찾을 수 없습니다. 왜 그럴까요?

다음과 같은 폴더 구조가 있다고 가정해 보겠습니다:

docker/
|-- stuff/
|-- test.txt
|-- 도커파일
server/
|-- 데이터
|-- setup.yml

명령 실행 빌드 에서 로그인 대기열 폴더에 있는 파일만 추가할 수 있으며, 로컬 폴더와 그 로컬 하위 폴더(예: stuff)에 있는 파일만 추가할 수 있습니다.

추가하려면 서버 폴더로 이동하면 메시지가 표시됩니다: "컨텍스트를 준비할 수 없음"

도커 무시

이미지 제작에 시간이 오래 걸리는 이유가 궁금한 적이 있나요? 아마도 .dockerignore를 클릭하여 이미지에 필요하지 않은 파일을 무시할 수 있습니다. 이미지의 .git 폴더와 모든 임시 파일을 자동으로 제거해야 합니다.

도커파일의 명령 순서

Docker는 각 줄을 Docker파일에 저장하고 빌드 후에는 각 줄을 레이어로 저장합니다. 특정 명령의 순서를 너무 자주 변경하지 않는 것이 매우 중요합니다.

FROM 우분투
실행 apt-get install -y 소프트웨어-속성-공통 python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www

ADD app.js /var/www/app.js

CMD ["/usr/bin/node", "/var/www/app.js"]

예를 들어 Docker파일의 마지막 줄을 변경하면 마지막 줄이 수정되는 동안 캐시에서 이전 줄이 모두 다운로드됩니다. 4번 줄을 바꾸면 4번 줄부터 마지막 줄까지 모든 줄이 수정됩니다. 따라서 변경되지 않는 명령은 파일의 시작 부분에 배치하는 것이 좋습니다.

이미지에 파일 복사하기

주어진 이미지의 용도를 고려하는 것이 좋습니다. 서비스를 한 번 실행하는 데 필요한 이미지라면 코드 콘텐츠를 이미지에 직접 추가할 수 있습니다:

COPY . /workdir

안타깝게도 이렇게 하면 파일을 편집할 수 없으며 코드를 편집할 때마다 이미지를 다시 빌드해야 합니다.

MacOS를 사용 중이고 빌드된 이미지를 개발에 사용하려는 경우 이 문제에 약간 다른 방식으로 접근해야 합니다. 볼륨을 사용할 경우 매우 느린 솔루션이라는 점에 대비해야 합니다(예: 호스트에서 컨테이너로 파일을 복사하는 속도는 4.5MB/s이고 컨테이너 내부에서 복사하는 속도는 10~20배 더 빠릅니다). 다행히도 다음에서 볼 수 있듯이 링크이 문제는 이미 알려진 문제이며, Mac용 Docker를 개발하는 팀의 핵심 과제입니다.

이러한 상황에서 개발에 Docker를 어떻게 사용할 수 있을까요?

외부 서비스(예: Redis/PSQL/Elasticsearch)에 사용하거나 rsync를 제공하는 준비된 솔루션을 사용할 수 있습니다: https://github.com/brikis98/docker-osx-dev

요약하면 다음과 같습니다.

대규모 팀으로 새로운 기능을 테스트하고 싶다면 도커가 이상적인 도구가 될 것입니다! 그럼에도 불구하고 서버의 프로덕션 출시에 사용할 수 있을까요? 아직 완전히 확신하지 못했습니다...

또한 몇 가지 뛰어난 기사를 추천해 드립니다:

  • 이미지 테스트 방법
  • 도커에 대한 다른 사항도 언급할 가치가 있습니다.
  • 마지막으로, Docker 설명서

관련 문서

소프트웨어 개발

미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트

The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...

최신
소프트웨어 개발

라트비아에 본사를 둔 10대 소프트웨어 개발 기업

최신 기사에서 라트비아 최고의 소프트웨어 개발 기업과 그들의 혁신적인 솔루션에 대해 알아보세요. 이러한 기술 리더들이 어떻게 귀사의 비즈니스를 향상시키는 데 도움을 줄 수 있는지 알아보세요.

thecodest
엔터프라이즈 및 스케일업 솔루션

Java 소프트웨어 개발 필수 사항: 성공적인 아웃소싱을 위한 가이드

The Codest로 효율성을 높이고 전문 지식을 활용하며 프로젝트 성공을 이끌 수 있는 성공적인 outsourcing Java 소프트웨어 개발에 대한 이 필수 가이드를 살펴보세요.

thecodest
소프트웨어 개발

폴란드 아웃소싱을 위한 최고의 가이드

폴란드에서 outsourcing가 급증한 것은 경제, 교육, 기술 발전으로 인한 IT 성장과 비즈니스 친화적인 환경이 조성된 덕분입니다.

더코데스트
엔터프라이즈 및 스케일업 솔루션

IT 감사 도구 및 기술에 대한 완벽한 가이드

IT 감사는 안전하고 효율적이며 규정을 준수하는 시스템을 보장합니다. 전체 기사를 읽고 그 중요성에 대해 자세히 알아보세요.

The Codest
야쿱 야쿠보비치 CTO & 공동 설립자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

    ko_KRKorean
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek ko_KRKorean