모르니까 Docker에 들어가면 더 잘 모르겠어요.

5880 단어 Docker초학자tech

Docker에 들어가려면


업무 관계상 Docker 파일을 자주 수정해 "아무것도 모르고, ^q^"상태로 보는 경우가 많아 일단 주말에 Docker 입문을 시도해 보기로 했다.
그리고 점점 더'Docker를 잘 몰라요'라는 결과가 나오자 이 기록을 틈타 기사를 썼다.

Docker의 기본 용어


일단 "나오는 용어를 몰라!"그렇기 때문에 굉장히 빈번한 키워드입니다.
  • 용기
  • 이미지
  • 억제를 결정하다.
    나는 먼저 자신의 현재 상황을 이해하는 인상을 쓰고 싶다.

    컨테이너


    한 마디로 하면 대략적인 인상은 가상 OS(실제로는 가상 OS가 아니라 가상화된 절차를 통해 만들어진 용기 기술로 운영체제의 특정한 과정만 게재하는 기술이지만 잠시 소홀히 한다)라고 생각한다.
    이 컨테이너 배치 애플리케이션 등에 대한 개발 등이 추진되고 있다는 인상을 준다.

    이미지


    나는 이미지가 용기를 만들 때의 디자인북과 같다고 생각한다.
    Docker hub에 배포하거나 Docker file에서 생성합니다.
    이 인상은 공유할 수 있기 때문에 어느 환경이든 동일한 상태(같은 디자인북으로 제작할 수 있는 용기)를 유지할 수 있고, 개발 환경이 제각각이어서 최초 환경 구축도 없을 것으로 보인다.

    참고로 Docker compose.


    참고로 Docker compose에 관해서는 이번에 샘플을 만들어 볼 때도 사용해 봤기 때문에 적어 두었습니다.
    Docker compose는 여러 컨테이너를 시작할 수 있습니다.
    그림의 제작부터 용기의 작동까지 동시에 진행할 수 있기 때문에 하나의 빌딩이 필요하지 않고 그림에서 용기까지 작동할 수 있다는 장점이 있다.
    다른 Docker 네트워크 내 여러 컨테이너의 연결 주변도 해제되지만, 이번에는 하지 않아 패스다.
    이상은 현재 상황에 대한 나의 일시적인 이해이다.

    아무튼 해봤어요.


    어쨌든 해보지 않는 건 몰라서 적당한 넥스트 앱을 만들어 컨테이너로 시작하기로 했다.
    ::개발 환경
    Docker version 20.10.14, build a224086
    node v14.17.0
    :::
    프로그램
  • Docker를 설치합니다(홈페이지에 가면 됩니다)
  • npxnuxt-create-app를 통해 응용 프로그램 만들기
  • Docker file 및 docker compose.루트 바로 아래에서 yml 만들기
  • 이후 계속 잘 쓰고 있어요!!!
  • 네.Docker file 및 docker compose다음은yml의 샘플입니다.
    정확한지 모르겠지만 저는 이미 평론을 썼으니 참고하세요.
    # ベースイメージ
    # alpineはとりあえず軽量らしいので採用、今回は自分のローカルと合わせて14系
    # やってみたい人はこのバージョンは変更が必要かもしれません
    FROM node:14-alpine
    
    # コンテナが解放するポート
    EXPOSE 3000
    # ホストを指定
    ENV HOST 0.0.0.0
    
    # working directoryを/appに
    WORKDIR /app
    # package.json類だけコピー
    COPY package.json . /
    # 今回はyarnを使ったプロジェクトだったのでyarn.lock
    COPY yarn.lock ./
    
    # alpine linux packageマネジャーのアップデートなどを行う
    # upgradeについては実は非推奨なのでできればしない方がいい
    RUN apk update && \
      apk upgrade && \
      # ついでにyarn
      yarn
    
    이상!!!위의 파일을 만들고 마지막에
    # docker-composeで使うバージョン
    version: "3"
    # services:アプリを動かすための様々なアクションのこと
    services:
      frontend:
        # ビルドされる時のパス設定
        build:
          # どこでdocker buildしているか 今回はroot
          context: .
          # どこにdockerfileがいるか 今回はroot
          dockerfile: Dockerfile
        # port:ホストとコンテナのportの称号 nuxt標準の3000
        ports:
          - "3000:3000"
        volumes:
          # カレントディレクトリをコンテナの/appにマウントする
          - ./:/app
          # node_modulesをホストに残す
          - /app/node_modules
        # 起動するだけ
        command: "yarn run dev"
    
    , Nuxt의 초기 페이지를 표시하는 localhost:3000에 액세스한 후 성공했습니다.

    그리고 또 헷갈려요.


    이렇게 해서 저는 제 두 손으로 Docker 환경을 만들었고 먼저 환경을 성공적으로 만들었습니다.
    하지만 잘 모르는 일들이 생겨서 마지막에 잘 쓰고 싶어요.

    Docker, FE 개발이 그렇게 맛있지 않아요?


    나는 FE를 주전장으로 매일 싸우고 있지만 Docker는 개발할 때가 아니라 depro할 때의 일이 많다.
    나는 Docker로 환경을 정리하는 것을 잘 모르니 현지에서 확인해 보자.
    원래 FE의 환경 구축과 관련해서는 누구나 똑같은 환경(OS나 PC 자체의 핵심 부분에 큰 차이가 있는 오리)에서 할 수 있다고 생각했다.아니면 먼저 개발 환경을 갖추는 것도 어렵지 않다.
    예를 들어 노드 버전은 볼트를 사용하면 기본적으로 개발자가 일렬로 배열할 수 있다.
    또한 의존 관계는 기본 lock 파일 등을 고정시킬 수 있기 때문에 큰 차이가 없다.
    그래서 BE 등에서 어떤 과제가 있는지 맛있는 게 있는지 잘 물어보고 싶어요.

    아직 compose의 맛을 잘 몰라서 끝났어요.


    나는 이것이 구성의 문제라고 생각하지만, 나는 compose의 맛이 Nuxt를 상승시킬 뿐이라는 것을 모른다.
    이번 목표는 Docker 내에서만 넥스트 앱을 가동하는 것이기 때문에 단순히 이미지를 만들고 컨테이너를 가동하는 것도 괜찮다고 생각한다.
    다음에 기회가 된다면 BE를 잘하는 기초 위에서 해보고 싶어요.

    결국 컨테이너를 못 잡았어요.


    키워드로 든 용기를 이해할 수 없습니다.
    가상 운영체제는 아니지만 가상 운영체제에 접근하는 동작을 하려면 아무리 해도 설명이 안 된다.
    앞으로 이걸 잘 설명하고 가능하면 언어화하고 싶어요.

    여행을 계속하다


    아직 이해가 안 되는 일들이 많아요.
    앞으로도 조금씩 접하면서 지금의'Docker는 아무것도 몰라요^q^'에서 벗어나겠습니다.

    좋은 웹페이지 즐겨찾기