Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.
간단히 말하면 어디서나 동일한 개발 환경을 제공 할 수 있습니다.
Docker compose는 yaml(또는 yml) 파일로 여러 개의 도커 컨테이너의 정의를 작성하여 한 번에 많은 컨테이너들을 작동시키고 관리할 수 있는 툴 입니다.
도커 다운로드 URL에서 Docker for Window or Docker for Mac을 다운 받으면
Docker-compose도 같이 다운로드가 된다.
Docker --version
Docker-compose --version
으로 설치를 확인 할 수 있다.
FROM node:15.5.1-alpine3.12 as base
WORKDIR /app
COPY package*.json ./
ENV NODE_ENV=development \
TZ=Asia/Seoul
RUN npm install && npm cache clean --force
RUN npm install -g typescript
RUN npm install -g sequelize-cli
이미지이름:tag
./
(가상환경)으로 복사한다.version: '3.7'
networks:
app-tier:
driver: bridge
services:
server:
networks:
- app-tier
build: .
restart: unless-stopped
command: npm run dev
ports:
- '3001:3001'
environment:
- PORT=3001
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=project-android
- MYSQL_PASSWORD=password
volumes:
- ./:/app:delegated
- /app/node_modules
links:
- mysql
depends_on:
- mysql
mysql:
networks:
- app-tier
image: mysql
command: --lower_case_table_names=1
restart: always
ports:
- '3307:3306'
environment:
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=project-android
- MYSQL_PASSWORD=password
volumes:
- /var/lib/mysql
docker-compose.yml
가 위치한 디렉토리 이름 뒤에 _default
가 붙는데app
이라면 네트워크 이름은 app_default
가 됩니다.$ docker network ls
로 네트워크 목록을 조회 가능합니다.server
라는 이름으로 컨테이너 정의build .
는 default로 root 디렉토리의 Dockerfile
을 갖습니다.Dockerfile
의 FROM과 비슷, docker-hub의 이미지를 불러온다.no
always
on-failure
unless-stopped
을 갖습니다.docker-compose up
root 디렉토리에서 터미널에서 실행하면 된다.
docker-compose up -d
백그라운드로 실행, 콘솔로 빠져나온다.
docker-compose up --build
서비스 시작 전 이미지를 새로 만든다.
docker-compose down
서비스 지운다.
docker-compose down --volume
볼륨과 같이 지운다.
pgAdmin:
container_name: pgadmin_container
image: dpage/pgadmin4
restart: always
environment:
- PGADMIN_DEFAULT_EMAIL=dohan@pgadmin.com
- PGADMIN_DEFAULT_PASSWORD=passwd
- PGADMIN_LISTEN_PORT=80
ports:
- '8080:80'
volumes:
- ./pgadmin/data:/var/lib/pgadmin
depends_on:
- pg
links:
- 'pg:pgsql-server'
localhost:8080
으로 접속 후 이메일과 패스워드로 로그인을 한다.
그 후Server
우 클릭 후 생성하기 해서Host Name
에pgsql-server
를 넣고 저장하면 db가 생성된다.
npm install --only=production
dependencies만 설치
npm install --only=development
devDependencies만 설치
도커 윈도우를 설치 후 실행 하면 vmmem
프로세서가 메모리를 끝없이 잡아 먹는 것을 볼수 있습니다.
그럴 경우 C:\Users\유저이름
에 .wslconfig
파일을 만듭니다.
[wsl2]
memory=6GB
swap=0
메모리 부분을 유저의 PC 메모리 사양에 따라 설정 하시면 됩니다.