"안녕하세요!"Docker 컨테이너 사용

6747 단어 nodecontainerdocker

Docker 컨테이너란 무엇입니까?



소프트웨어의 표준화된 단위, Docker-website .

이것은 기본적으로 우리의 코드 베이스와 필요한 모든 종속성을 래핑하여 현재 실행 중인 운영 체제(OS)와 독립적인 격리된 환경에서 우리의 애플리케이션을 실행하여 표시된 것과 같이 Docker-engine 위에 실행되는 크로스 플랫폼 애플리케이션을 가능하게 합니다. 아래 그림에서:

컨테이너 대 VM



컨테이너는 VM(가상 머신)이 제공하는 모든 기능을 제공하지만 전체 OS를 실행하는 비용은 없습니다. 아래 그림을 참조하세요.


도커파일


  • 도커에게 어떻게 컨테이너를 만들 것인지 알려주는 파일입니다.
  • Docker가 위에서 아래로 하나씩 실행하는 명령어 목록을 포함합니다.

  • Node.js를 사용하는 간단한 컨테이너


    Dockerfile 를 사용하여 간단한 컨테이너를 빌드해 보겠습니다.

    메모:
  • 다음 단계는 Linux, macOS, WSL에서 작동하도록 준비되어 있습니다.
  • 컴퓨터에 docker가 설치되어 있다고 가정합니다. 자세한 설명은 여기link를 확인하십시오.

  • 단계



    1- 선택한 작업 공간에 새 디렉토리를 만들고 다음 명령을 실행하여 해당 디렉토리로 이동합니다.

    mkdir my-container && cd my-container
    


    2- OS에서 도커 서비스 실행

    sudo service docker start
    


    3- Dockerfile 만들기

    touch Dockerfile
    


    4- 코드 편집기를 사용하여 Dockerfile을 엽니다. 제 경우에는 VSCode가 됩니다.

    # Pull ready-made node image from Docker Hub, using the format <image-name>:<image-version> 
    FROM  node:12-alpin
    
    # By default, Docker runs a container as a root user which is considered to be a security issue so, we need to run the commands as an unprivileged user whenever it is possible.
    # Node Image writers created a special user `node` for security purposes so, let us use it to run our commands within our container
    USER  node
    
    # Set the working directory within the container
    WORKDIR  /home/node/code
    
    # Copy the `index.js` to the working directory using permissions flag `--chown:<user>:<group>`
    COPY  --chown=node:node  index.js  index.js
    
    # Run the command `node` with `index.js` as a parameter which means simple `node indexjs`
    CMD  [  "node",  "index.js"  ]
    


    5- index.js 파일 생성:

    touch index.js
    


    6- 좋아하는 코드 편집기를 사용하여 열기index.js
    code index.js
    


    7- 단순히 "Hello World!"를 인쇄하는 코드 스니펫을 파일 내에 붙여넣습니다.

    const  http = require("http");
    http.createServer(function (request, response) {
            console.log("request received");
            response.end("Hello World!", "utf-8");
        }).listen(3000);
    console.log("server started");
    


    8- 컨테이너를 만들고 태그를 지정합니다. containerID 또는 easyness 대신 컨테이너를 참조하도록 태그를 지정합니다.

    docker build -t alpine-simple-app .
    




    9- 빌드된 컨테이너를 실행합니다.

    docker run --init --rm -p 3000:3000  alpine-simple-app
    

    --rm 컨테이너가 존재하면 자동으로 삭제하도록 Docker에 지시합니다.--init는 초기화 프로세스가 "Ctrl+c 때 컨테이너를 중지하는 데 사용되는"컨테이너의 PID 1로 사용되어야 함을 나타냅니다. 자세한 내용은 link을 참조하십시오.-p 컨테이너의 포트를 호스트 시스템에 게시합니다<Docker_host_port>:<container_port>.



    10- 브라우저로 이동하여 URL을 엽니다.

    [localhost:3000](http://localhost:3000/)
    

    다음 메시지가 표시되어야 합니다.



    완료되었습니다! 컨테이너 내에서 Node.js 앱을 실행할 수 있었습니다!
    제 글이 도움이 되고 즐거웠기를 바랍니다! 그의 훌륭한 설명에 특별히 감사드립니다.

    참고: 모든 수치는 Docker의 신용입니다.

    추가 질문이 있으시면 주저하지 마시고 로 연락해 주십시오.

    좋은 웹페이지 즐겨찾기