Docker 시작

만약 당신이 소프트웨어나 웹 개발에 종사한 적이 있다면, 적어도 Docker는 들어 본 적이 있다.아마도 너는 나와 마찬가지로 그것을 사용하지 마라. 왜냐하면 그것은 매우 복잡하거나 설정하기 어려워 보이기 때문이다.
좋은 소식은 그것이 실제로는 매우 간단하다는 것이다.본고에서 저는 당신에게 몇 가지 방법을 보여 드리겠습니다. 당신은 제가 현재 배운 지식부터docker를 배울 수 있습니다.

Docker가 뭐예요?


우리가 진일보한 토론을 하기 전에 Docker가 실제로 무엇인지 정의해 봅시다.Docker는 응용 프로그램과 모든 의존 항목을 하나의 단원으로 묶고 용기라고 불리는 격리 환경에서 실행할 수 있는 소프트웨어입니다.
이것은 이 Docker 컨테이너를 사람, 장소, 기계에서 실행하면 프로그램이 완전히 같은 환경을 가지고 있기 때문에 같은 방식으로 실행된다는 것을 의미한다.
Docker 컨테이너는 가상 머신과 비슷하지만 모든 용기가 실제적으로 하나의 커널을 공유하기 때문에 모든 실례를 위해 전체 가상 운영체제를 만들고 실행하는 데 많은 비용을 소모한다.

왜 Docker야?


이러한 독립된 용기를 사용하는 것은 매우 큰 장점이 있고 모든 용기는 자신의 환경이 있다는 것을 보셨으면 합니다.이것은 전체 소프트웨어 개발과 배치 주기를 더욱 간단하게 합니다. 용기를 설치하면 외부 요소에 의해 환경이 바뀌지 않는다는 것을 알 수 있기 때문입니다.
용기화 응용 프로그램을 구축하는 것 외에도 Docker는 테스트 생성과 integrating them in to your CI/CD workflow에 유행하고 있다.마찬가지로 이것은 모든 테스트가 완전히 신선하고 격리된 환경에서 실행된다는 것을 보장할 수 있기 때문에 테스트는 다른 테스트의 부작용의 영향을 받아서는 안 된다.
마지막으로, Docker 용기를 빠르게 시작하고 멈출 수 있기 때문에, Docker를 사용하여 프로그래밍 방식으로 멋진 일을 할 수 있는 기회가 많습니다.예를 들어 Remote Interview이라는 회사가 잠재적 직원을 위한 코드 테스트를 허용한다.응시자는 온라인으로 코드를 제출하고 원격 면접 소프트웨어가 일부 테스트를 실행하면 시험에 통과했는지 여부를 발견할 수 있다.그들은 어떤 기술을 사용하여 후보 코드를 테스트합니까?당연히 Docker!후보자가 새 코드를 제출할 때마다 코드를 테스트하기 위해 새 Docker 용기를 시작합니다.그들은 심지어 public GitHub repo을 가지고 있기 때문에 너는 그것을 어떻게 일하는지 스스로 볼 수 있다.

시작 예제


다음에 제가 제시한 모든 예는 자바스크립트/NodeJs 프로젝트에 대한 것이지만, 서로 다른 언어/프레임워크에 대한 수정은 상당히 간단할 것입니다.
또한 컴퓨터에 Docker가 설치되어 있다고 가정합니다.만약 네가 없다면, 지금 가서 해라.
Docker Desktop Download page

안녕, 세상.


Hello World 예시가 없으면 어떤 인코딩 강좌가 완전합니까?
먼저 index.js 파일을 만들고 코드를 줄입니다.
console.log('Hello World');
그런 다음 JavaScript 파일과 같은 디렉토리에 Dockerfile이라는 파일을 만듭니다(예, 확장자가 없습니다).이 파일은 Docker 컨테이너의 이미지를 구성하는 데 사용됩니다.이미지는 Docker 컨테이너를 만드는 템플릿일 뿐입니다.Dockerfile은 다음과 같습니다.
FROM node:latest
WORKDIR /hello-world
COPY ./index.js .
CMD ["node", "./index.js"]
우리 한 줄 한 줄 걸어가자.
  • FROM node:latest-Docker Hub에는 수천 개의 미리 구성된 Docker 이미지가 있습니다. 이를 저희 이미지의 기반으로 사용할 수 있습니다. 따라서 프로그램의 기본 이미지를 항상 찾을 수 있습니다.우리의 예에서, 우리는 최신 노드 이미지를 바탕으로 노드 응용 프로그램을 실행하는 데 필요한 모든 설정을 갖추기를 희망한다.
  • WORKDIR/hello world - 컨테이너 내의 작업 디렉토리를 hello-world으로 설정합니다.
  • 부/지수jsindex.js 파일을 우리 시스템에서 Docker 컨테이너의 작업 디렉토리로 복사합니다.
  • CMD ["node", "/index.js"] - index.js을 입구점으로 운행합니다.
  • 지금 우리는 우리의 이미지를 세워야 한다.콘솔 창을 열고 index.jsDockerfile 파일이 있는 디렉토리로 이동하여 다음을 입력합니다.
    docker build -t hello-world .
    
    이 디렉토리의 hello-worldDockerfile으로 표시된 Docker 이미지가 생성됩니다.이제 Docker가 이 컨테이너를 실행하도록 태그를 사용합니다.
    docker run --rm hello-world
    
    이곳의 --rm 로고는 용기가 실행된 후에 용기를 삭제할 뿐입니다.이것은 통상적으로 좋은 생각이다. 그렇지 않으면 당신의 기계에 수천 개의 빈 용기가 있을 것이다.
    만약 모든 것이 정상이라면, 현재 Hello World이 화면에 인쇄되어 있는 것을 볼 수 있을 것입니다.축하이제 Docker에서 첫 번째 응용 프로그램을 실행했습니다.

    GitHub 저장소에서 Docker 컨테이너 만들기


    프로젝트에서 이 점을 제시했습니다. 사용자는 GitHub 저장소 URL을 제출하여 코드를 제출하여 테스트를 할 수 있습니다.나는 그것 또한 네가 Docker로 할 수 있는 다른 멋진 일들을 보여 준다고 생각한다. 그것이 너의 응용 프로그램에도 유용하길 바란다.
    이 Docker 용기는 더욱 복잡하고 동적이어야 하기 때문에 Docker 용기에서 실행되는 Bash 셸 스크립트를 작성합니다.따라서 우선 새 디렉터리를 만들고 docker.sh이라는 파일을 만듭니다.
    #!/bin/bash
    repository_url=$1
    branch=$2
    
    git clone --single-branch --branch $branch $repository_url 
    
    cd $(ls -d */|head -n 1) #cd to first directory
    
    yarn install
    yarn test
    
    다시 한 번, 나는 한 줄 한 줄 설명할 것이다.
  • #!/bin/bash - Linux에서 이것을 shebang이라고 하는데, 컨트롤러에만 bash 스크립트
  • 이라고 알려줍니다.
  • repository\uurl=$1/분지=$2-$1과 $2는 각각 첫 번째와 두 번째 명령행 매개 변수입니다.여기에서, 우리는 그것들이 무엇을 대표하는지 더 잘 알기 위해 그것들을 변수에 분배할 뿐이다.Docker 컨테이너를 시작할 때 GitHub 저장소 URL과 복제할 브랜치를 컨테이너에 매개 변수로 전달합니다.
  • git 클론... -Git 저장소를 복제하고 원하는 분기를 체크 아웃합니다.--single-branch 옵션은 용기를 실행할 때 시간을 절약할 수 있도록 이 지점만 다운로드하는 것을 의미합니다.
  • 방사선 설치/방사선 테스트 - 이것은 우리가 복제한 GitHub 저장소가 노드 프로젝트라고 가정한다. 이 프로젝트는 packages.json 파일이 있는데 그 중에서 테스트 스크립트를 정의했다.이것은 모든 노드 의존항을 설치하고 테스트 스크립트를 실행합니다.물론, 너는 그것을 더욱 활기차게 하는 것을 고려할 수 있지만, 나의 목적으로는 그것은 매우 좋다.
  • 같은 디렉토리에 Dockerfile이 다시 필요합니다.
    FROM node
    
    RUN apt-get update
    RUN apt-get install dos2unix -y
    
    COPY docker.sh /test/docker.sh
    WORKDIR /test
    RUN dos2unix ./docker.sh
    
    ENTRYPOINT ["./docker.sh"]
    
    여기에서 dos2unix을 설치하고 ./docker.sh 파일에서 실행하고 있습니다.Windows 시스템에서 Bash 셸 스크립트를 작성할 때만 필요합니다.이것은 줄의 끝을 Windows 형식에서 유닉스 형식으로 바꾸어야 스크립트를 정확하게 실행할 수 있기 때문이다.docker.sh 스크립트를 입구점으로 지정하여 Docker 컨테이너를 시작할 때 실행합니다.또한 테스트할 저장소를 동적으로 선택할 수 있도록 docker run 명령 동안 매개 변수를 선택할 수 있습니다.
    다음 작업을 실행할 수 있습니다.
    docker build -t github-repo .
    docker run --rm github-repo https://github.com/walpoles93/basic-jest-test.git master
    
    나는 이미 basic Github repo that you can use for this tutorial을 설치했다.그것도 당신이 자신의 프로젝트의 출발점으로 삼는 데 도움을 줄 수 있기를 바랍니다.
    모든 것이 순조롭습니다. Git 저장소가 복제되고 Jest 테스트가 실행되는 것을 보셔야 합니다.

    결론


    이 강좌는 Docker를 사용할 수 있는 두 가지 간단한 방법을 제공합니다.Docker가 그렇게 무섭지 않은 것을 보길 바랍니다. 실제로 용기를 실행하는 것은 매우 간단하고 직접적입니다.물론 그것으로 더욱 복잡한 일을 실현할 수 있지만, 이것은 Docker 여행의 좋은 출발점이다.
    만약 이 강좌가 매우 유용하다고 생각한다면, 좋아하고 공유하세요.이러한 내용이 더 필요하면 이 블로그와 를 참조하십시오.만약 네가 원한다면, 너도 buy me a coffee!😊

    좋은 웹페이지 즐겨찾기