Docker (내용 추가중)
도커
서론
필자는 도커를 단순하게 컨테이너 하나씩 포트설정하고 RUN하고 사용하다보니,
도커를 진짜 필요해서 사용하게 될 때 아묵것도 몰라 결국 또 검색하고 한 줄쓰고 이런일을 반복하다보니 매우 불편함을 느끼게 되었음.그래서 이 글을 적으면서 도커에 대해 이해도를 높히고자하며, 꾸준하게 글을 추가하고 수정한다.
도커파일 쓰면 뭐가 좋은가?
- 배포
- 이미지를 배포하기보단, 그 이미지를 만들 수 있는 도커파일 자체를 배포할 수 있어 편리함
- 그럼 개발자는 도커파일을 바로 실행시키거나, 내용을 읽고 필요에 맞게 수정해서 원하는 이미지를 만들 수 있는 장점이 있다.
- 컨네이너로 생성한 이미지가 사용자가 지정한 명령어대로 수행한다.
- 도커파일에 사용자가 원하는 대로 명령어를 지정할 수 있어서, 커스텀마이징이 가능함.
도커파일(Docker file) 명령어
COMMAND | COMMAND |
---|---|
FROM | RUN |
CMD | WORKDIR |
LABEL | ARG |
EXPOSE | ONBULID |
ENV | STOPSIGNAL |
ADD | HEALTHCHECK |
COPY | SHELL |
ENTRYPOINT | |
- 도커파일이란 도커 이미지를 만들기 위한 설정파일
도커파일을 읽을 수 있다면 해당 도커 이미지가 어떻게 구성되어있는지 알 수 있기에 꼭 알아야할 개념이다.
- 최종적으로는 도커파일로 만든 도커이미지를 실행한다.
Docker Compose
Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다. 이는 간소화되고 효율적인 개발 및 배포 환경을 여는 열쇠입니다.
Compose는 전체 애플리케이션 스택의 제어를 단순화하여 이해하기 쉬운 단일 YAML 구성 파일에서 서비스, 네트워크 및 볼륨을 쉽게 관리할 수 있도록해주고, 그런 다음 단일 명령을 사용하여 구성 파일에서 모든 서비스를 생성하고 시작합니다.
Compose는 모든 환경에서 작동합니다. 프로덕션, 스테이징, 개발, 테스트는 물론 CI 워크플로까지. 또한 애플리케이션의 전체 수명주기를 관리하기 위한 명령도 있습니다.
- 서비스 시작, 중지 및 재구축
- 실행 중인 서비스 상태 보기
- 실행 중인 서비스의 로그 출력 스트리밍
- 서비스에서 일회성 명령 실행
ex) yml 예시 양식 -> 자주 사용하는 명령어 적어볼 예정
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
version: '3'
services:
mysql_write:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: nerdydatabase
MYSQL_USER: nerdy
MYSQL_PASSWORD: nerdy1234
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:latest
command: redis-server --port 6379
container_name: redis_cash
hostname: redis_cash
labels:
- "name=redis"
- "mode=standalone"
ports:
- 6379:6379
volumes:
mysql_data:
-출처-
https://docs.docker.com/
https://tech.cloudmt.co.kr/2022/06/29/%EB%8F%84%EC%BB%A4%EC%99%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%EC%9D%B4%ED%95%B4-3-3-docker-image-dockerfile-docker-compose/