Docker-compose를 사용하여 node.js의 환경을 구축해 보았습니다.
Docker-compose를 사용하여 node.js의 환경 구축을한다.
이쪽이 마지막 기사.
Docker에 대해 기본적인 것들을 따라 봤어.
이곳에서 Docker의 기본적인 것을 추적했으므로 이번에는 docker-compose를 사용해 나가려고 생각합니다.
docker-compose와 Dockerfile은 어떻게 다른가요?
docker-compose는 docker-compose.yml의 설명을 docker-compose
명령을 사용하여 docker 이미지를 만듭니다.
Dockerfile은 docker build
명령으로 docker 이미지를 만듭니다.
Dockerfile · · · docker image 작성 순서
docker compose··· 복수의 컨테이너의 어플리케이션 정의를 기술할 수 있어 각각의 컨테이너의 docker image를 작성할 수 있다.
우선 Docker의 생각으로
이 생각이 정착하고 있으면 이해하기 쉬운 것일까라고 생각합니다.
우선은 docker image를 작성하는 것이 먼저입니다.
다음 명령으로 docker image를 만들 수 있습니다.
※인식 부족이라면 가르쳐 주세요.
# docker hubからdocker imageをpullする
$ docker pull [IMAGE_NAME]
# 既存のdocker imageからオリジナルのdocker imageを作成する
$ docker commit [CREATE_IMAGE_NAME] [IMAGE_NAME]
# Dockerfileからイメージを作成
$ docker build -t[イメージに名前を設定] [IMAGE_NAME] [Dockerfile/path]
# docker-compose.ymlからイメージを作成
$ docker-compose build
그런 다음 docker container를 시작합니다.
그 때의 명령이 여기
# 単発での起動
$ docker run
# docker-composeでの起動
$ docker-compose up
image가 있어서의 container라고 하는 생각이 생겼으므로, 조속히 docker compose를 사용해 갑니다.
docker compose를 사용한다.
확실한 버전 확인에서.
$ docker-compose -v
docker-compose version 1.24.1, build 4667896b
좋아요.
이번에는 node.js를 도입하겠습니다.
참고로 한 기사는 이쪽입니다.
【초보자용】Docker로 간편하게 Node.js 개발 환경 구축 (2)
초기의 디렉토리 구성은 이쪽.
MyApp
├─ node
│ ├─ Dockerfile
│ └─ .dockerignore
└─ docker-compose.yml
Dockerfile에 작성합니다.
# ベースイメージを指定
FROM node
# node.js の環境変数を定義する
# 本番環境では production
ENV NODE_ENV=development
# 雛形を生成するのに必要なパッケージのインストール
RUN npm install -g express-generator
# ディレクトリを移動する
WORKDIR /app
# ポート3000番を開放する
EXPOSE 3000
다음은 docker-compose.yml
version: '3'
services:
webserver:
build: node
image: node-express-dev:1.0
tty: true
volumes:
- ./node/app:/app
ports:
- "8080:3000"
이 build
라고 하는 부분에 주목.
여기에는 Dockerfile의 경로를 씁니다.
즉 node 디렉토리 안에 있는 Dockerfile을 사용해 docker image를 작성한다고 하는 의미군요.
어쨌든 Dockerfile과 docker-compose의 관계성을 알았는지 생각합니다.
Dockerfile과 docker-compose.yml이 작성되면 docker image를 만듭니다.
$ docker-compose build
Step 1/5 : FROM node
(省略)
Successfully built c3154d2017fb
Successfully tagged node-express-dev:1.0
라고 표시될까 생각합니다.
결국, docker-compoes라고 해도 Dockerfile에서 docker image를 작성하고 있었군요.
그래서 docker-compose.yml을 사용하면 종속성 등도 정의하면서 여러 컨테이너의 Dockerfile을 실행할 수 있다고 말한 이점이 있다고 말한 곳입니까?
다음 가자.
docker images
로 방금 전의 이미지가 작성되고 있는 것을 확인하면 컨테이너를 기동시킵니다.
$ docker-compose up -d
docker ps
에서 컨테이너가 시작되었는지 확인합니다.
시작되면 로그인합니다.
$ docker exec -it [CONTAINER_NAME] /bin/sh
express-generator로 병아리를 만듭니다.
$ express -f --view=pug /app
npm 설치
$ npm install
서버 시작
$ npm start
브라우저에서 http://localhost:8080로 이동합니다.
"익스프레스
Welcome to Express”
라고 표시되면 OK입니다.
이상.
요약
docker run이거나, docker-compose up이거나 비슷한 명령이 가득하기 때문에 처음에는 당황합니다만, 하는 것은 イメージ作成→コンテ起動
뿐입니다.
그 방법이 많이 있을 뿐입니다.
image는 hub에서 pull 해 오는지, run으로 이미지를 자동 다운로드 하는지, 혹은 기존의 이미지를 사용해 docker commit로 오리지날 이미지를 작성하는지, Dockerfile을 사용해 코드로서 이미지 작성을 관리할 것인가 .
컨테이너 시작도 함께합니다.
docker run으로 얻은 이미지로 컨테이너를 만들 것인지, docker-compse 명령으로 docker-compose.yml을 실행하여 콘티를 만들 것인가?
イメージ作成→コンテ起動
이것을 어떻게 실현하는지입니다.
그래도 각 옵션에서 또 거동은 다르기 때문에, 거기는 수시로 조사하면서 해 나가려고 생각합니다!
Reference
이 문제에 관하여(Docker-compose를 사용하여 node.js의 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/art_porokyu/items/8363334c358c67adb61a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# docker hubからdocker imageをpullする
$ docker pull [IMAGE_NAME]
# 既存のdocker imageからオリジナルのdocker imageを作成する
$ docker commit [CREATE_IMAGE_NAME] [IMAGE_NAME]
# Dockerfileからイメージを作成
$ docker build -t[イメージに名前を設定] [IMAGE_NAME] [Dockerfile/path]
# docker-compose.ymlからイメージを作成
$ docker-compose build
# 単発での起動
$ docker run
# docker-composeでの起動
$ docker-compose up
$ docker-compose -v
docker-compose version 1.24.1, build 4667896b
MyApp
├─ node
│ ├─ Dockerfile
│ └─ .dockerignore
└─ docker-compose.yml
# ベースイメージを指定
FROM node
# node.js の環境変数を定義する
# 本番環境では production
ENV NODE_ENV=development
# 雛形を生成するのに必要なパッケージのインストール
RUN npm install -g express-generator
# ディレクトリを移動する
WORKDIR /app
# ポート3000番を開放する
EXPOSE 3000
version: '3'
services:
webserver:
build: node
image: node-express-dev:1.0
tty: true
volumes:
- ./node/app:/app
ports:
- "8080:3000"
$ docker-compose build
Step 1/5 : FROM node
(省略)
Successfully built c3154d2017fb
Successfully tagged node-express-dev:1.0
$ docker-compose up -d
$ docker exec -it [CONTAINER_NAME] /bin/sh
$ express -f --view=pug /app
$ npm install
$ npm start
Reference
이 문제에 관하여(Docker-compose를 사용하여 node.js의 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/art_porokyu/items/8363334c358c67adb61a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)