Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 쿼리스트링
- route 53
- 알림생성
- 부트캠프
- JWT 쓰는이유
- 포트번호
- 메뉴바 한번에
- 환경변수
- 게시글 이미지 업로드
- N+1문제
- N+1
- 레포지토리
- JWT
- getComputedStyle
- 스테이지어스
- JWT 쓰는 방법
- JSON Web Token
- 네비게이션 한번에
- element.style
- 메뉴바
- 토큰
- .env
- unnest
- Winston
- 이미지가 포함된 게시글
- 3계층구조
- 패스파라미터
- 게시글 이미지
- 알림생성모듈
- secret코드
Archives
- Today
- Total
기주
[docker] docker compose 로 mysql 서버 띄우기 본문
docker compose 로 mysql 서버 띄우기
Docker Compose
여러개의 컨테이너를 하나의 서비스로 정의하고 하나의 묶음으로 관리할 수 있게 해주는 툴
도커 컴포즈를 사용하는 이유
1. 여러개의 컨테이너를 관리하는데 용이하다
여러개의 컨테이너로 이루어진 어플리케이션을 한번에 관리할 수 있다. 여러 컨테이너를 하나의 환경에서 실행하고 관리하는데 도움이된다.
2. 복잡한 명령어로 실행시키던것을 간소화할 수 있다.
이전에 mySQL 이미지를 컨테이너로 실행시킬 쓰던 명령어.
docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306
-v /Users/kiju/dev/study_data/docker-volume/mysql_data:/var/lib/mysql -d mysql
이는 너무 복잡하다. 도커 컴포즈를 쓰면
Docker compose up
명령어 하나로 compose.yml에 적힌 모든 컨테이너를 생성한다.
도커컴포즈 활용하기
1. compose.yml 파일 작성하기
services:
My-web-server:
contaienr_name: webserver
image: nginx
ports:
- 80:80
services: my-web-server // 도커 컴포즈에서 하나의 컨테이너는 하나의 서비스라고 부른다. 서비스의 이름설정
container_name: webserver // 컨테이너를 띄울때 붙이는 이름. docker cli 에서 --name 과 같다
image: 컨테이너에 사용되는 이미지
port: 호스트 컴퓨터의 포트와 컨테이너의 포트를 매핑
2. compose 파일 실행
compose.yml에 적힌 컨테이너생성 (docker comopse create + start)
Docker compose up -d
// 옵션
-d : 백그라운드 실행
--build: 이미지없다면 빌드
3. 컴포즈 실행 현황보기
docker compose ps
docker ps
4. 도커 컴포즈 내리기
compose.yml에 적힌 컨테이너 모두 삭제
Docker compose down
옵션
-v: 연결된 볼륨도 모두 삭제
컨테이너를 중지만 하고싶다면
docker compose stop
그외 쓰이는 docker compose 명령어)
docker compose에 정의된 컨테이너 목록보기
// compose.yml에 정의된 실행중인 컨테이너 목록 보기
Docker compose ps
// compose.yml에 정의된 모든 컨테이너 목록 보기
Docker compose ps -a
compose.yml에 정의된 컨테이너들의 로그보기
Docker compose logs
도커 컴포즈 이미지 빌드
Compose.yml에서 정의한 이미지 파일에서 코드가 변경되었을때, 이미지를 재빌드해서 컨테이너를 실행시켜야 변경사항이 적용된다.
이때 필요한 옵션이다.
// 이미지가 없을 때만 빌드해서 컨테이너를 실행시킨다. 이미지가 이미 존재하는 경우 이미지를 빌드하지 않고 컨테이너를 실행시킨다.
docker compose up
// 이미지가 있건 없건 무조건 빌드를 다시해서 컨테이너를 실행시킨다.
docker compose up --build
이미지 다운받기 / 업데이트하기
Docker compose pull
로컬에 이미지가 없다면 이미지 다운.
로컬환경에 이미지가 있지만, 도커허브의 이미지와 다른 경우 업데이트한다.
docker compose 이용해서 mysql 서버 띄우기
기존의 복잡하고 긴 docker CLI 명령어때문에 컨테이너가 1개일때도 docker compose를 이용하기도 한다.
compose.yml
services:
mysql-server:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: password123
volumes:
- ./mysql_data:/var/lib/mysql
ports:
- 3306:3306
environment: CLI에서 -e 옵션과 동일
volumes: CLI에서 -v 옵션과 동일
기존 도커 CLI 코드
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306
-v ./mysql_data:/var/lib/mysql -d mysql
도커 컴포즈 실행
docker compose up -d
이처럼 docker CLI는 compose.yml로 대응이 서로 가능하다. 그 반대도 가능하다.
이를 변환해주는 사이트도 있다.
docker CLI -> compose.yml
compose.yml -> docker CLI
'devops > docker' 카테고리의 다른 글
[AWS] AWS ECR을 활용해서 EC2에서 도커로 배포하기-1 (1) | 2024.12.08 |
---|---|
[docker] docker compose로 nestJS, postgresql, redis 서버 띄우기 (0) | 2024.12.07 |
[docker] docker로 nestJS 서버띄워보기 (0) | 2024.12.07 |
[docker] 도커파일 만들기1 (0) | 2024.12.07 |
[docker] docker volume으로 mysql 서버띄우기 (0) | 2024.12.06 |