Post

Docker (내용 추가중)


도커

서론

  • 필자는 도커를 단순하게 컨테이너 하나씩 포트설정하고 RUN하고 사용하다보니,
    도커를 진짜 필요해서 사용하게 될 때 아묵것도 몰라 결국 또 검색하고 한 줄쓰고 이런일을 반복하다보니 매우 불편함을 느끼게 되었음.

  • 그래서 이 글을 적으면서 도커에 대해 이해도를 높히고자하며, 꾸준하게 글을 추가하고 수정한다.



도커파일 쓰면 뭐가 좋은가?

  1. 배포
    • 이미지를 배포하기보단, 그 이미지를 만들 수 있는 도커파일 자체를 배포할 수 있어 편리함
    • 그럼 개발자는 도커파일을 바로 실행시키거나, 내용을 읽고 필요에 맞게 수정해서 원하는 이미지를 만들 수 있는 장점이 있다.
  2. 컨네이너로 생성한 이미지가 사용자가 지정한 명령어대로 수행한다.
    • 도커파일에 사용자가 원하는 대로 명령어를 지정할 수 있어서, 커스텀마이징이 가능함.



도커파일(Docker file) 명령어

COMMANDCOMMAND
FROMRUN
CMDWORKDIR
LABELARG
EXPOSEONBULID
ENVSTOPSIGNAL
ADDHEALTHCHECK
COPYSHELL
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/

This post is licensed under CC BY 4.0 by the author.