IT지식/도커(Docker) 사용법 19

20.도커(Docker)로 SpringBoot, MySQL, Redis 동시에 띄우기

오늘은 여태 배웠던 모든 지식을 활용하여 SpringBoot, MySQL, Redis를 묶어 하나의 서비스로 정의하고 실행시켜보겠습니다. 우선 Redis사용을 위해 build.gradle파일에 의존성 추가를 해주도록 하겠습니다.dependencies부분에 아래와 같은 코드를 삽입해주세요.implementation 'org.springframework.boot:spring-boot-starter-data-redis'저장 후 꼭 우측 동그라미(Sync Gradle Change)를 클릭해야 의존성 주입한게 적용됩니다. 다음은 compose.yml 파일을 만들어주도록 하겠습니다.services: my-server: build: . ports: - 8080:8080 depends_on:..

19.도커(Docker) Compose에 관련된 명령어

이전 블로그에선 Docker Compose에 대한 정의와 사용법을 다루었습니다. 이해하시는데 도움이 됩니다.https://steady-snb.tistory.com/82 18.도커(Docker) Compose의 정의와 사용법Docker Compose란?기본적으로 Docker는 여러 개의 컨테이너를 동시에 실행하는데이러한 다수 개의 컨테이너들을 하나의 서비스로 정의하고 구성하여 관리할 수 있게 해주는 툴입니다.   Docker Composesteady-snb.tistory.com  Compose 파일 작성services: websever: container_name: webserver image: nginx ports: - 80:80 Compose.yml에서 정의한 컨테이너 실행$ docker c..

18.도커(Docker) Compose의 정의와 사용법

Docker Compose란?기본적으로 Docker는 여러 개의 컨테이너를 동시에 실행하는데이러한 다수 개의 컨테이너들을 하나의 서비스로 정의하고 구성하여 관리할 수 있게 해주는 툴입니다.   Docker Compose가 제공하는 편리함 1. 여러 개의 컨테이너를 관리하는데 용이함위에서 말씀드렸다시피 여러 개의 컨테이너로 이루어진 복잡한 애플리케이션을 한 번에 관리할 수 있게 해줍니다.즉, 여러개의 컨테이너를 하나의 환경에서 실행하고 관리하는데 수월합니다. 2. 복잡한 명령어의 간소화여태까지 실습해오면서 컨테이너를 실행할 때 마다 입력했었던 복잡한 명령어들을 'docker compose up' 한 문장으로대신할 수 있습니다.  Docker Compose 사용법 기존 컨테이너 실행 명령어docker run..

17. 도커(Dokcer) WORKDIR 정의와 사용법

사용법# 문법WORKDIR [작업 디렉토리로 사용할 절대 경로]# 예시WORKDIR /usr/src/app  정의Dockerfile에 WORKDIR를 설정하게되면 이후 실행되는 모든 명령어(RUN, CMD, ENTRYPOINT, COPY, ADD 등)는해당 경로를 기준으로 실행됩니다.이 경로를 지정해주는 이유는 컨테이너 내부의 폴더를 깔끔하게 관리하기 위해서입니다.   출처 - 인프런 비전공자도 이해할 수 있는 Docker 입문/실전 중..https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84 비전공자도 이해할 수 있는 Docker 입문/실전 강의 | JSC..

16. 도커(Docker) 명령어 RUN과 ENTRYPOINT 차이

https://steady-snb.tistory.com/78 14.도커(Docker) ENTRYPOINT의 정의와 사용법ENTRYPOINT란? 컨테이너가 생성되고 바로 실행할 명령어를 뜻합니다. # 문법ENTRYPOINT [명령문...]# 예시ENTRYPOINT ["node", "dist/main.js"]  C:\Users\xoxox\docker-image 이 경로에 Dockerfile을 아래와 같이 생성해줍steady-snb.tistory.com기본적으로 사용 문법은 같습니다.RUN [명령어]ENTRYPOINT [명령문...] RUN과 ENTRYPOINT의 차이점RUN은 '이미지 생성 과정'에서 필요한 명령어를 실행시킬 때 사용하고,ENTRYPOINT는 생성된 이미지를 기반으로 컨테이너를 생성한 직후에..

15. 도커(Docker)로 스프링 부트(Spring Boot) 연동하여 실행하기

start.spring.io 사이트로 접속해줍니다. 설정은 위와 같이 jar파일 jdk17버전으로 해주고우측 add depedencies를 클릭하여 의존성도 추가해줍니다. Spring Boot Dev Tools와 Spring Web을 추가하고 Generate로 생성해줍니다.demo.zip파일을 압축 해제 후 각자 편집 툴을 여셔서 import해줍니다. 아래와 같이 demo파일을 import하셨으면demo/src/main/java/com.example 어쩌구 밑에 AppController라는 자바 파일을 생성하고아래와 같이 코딩해줍니다. shell이나 terminal을 여셔서 ./gradlew clean build 성공적으로 success가 뜨면 왼쪽 explorer에 libs폴더에 jar파일이 생성된 것..

13. 도커(Docker) copy로 파일 복사/이동 하기

도커파일에 위의 그림과 같이COPY [호스트 컴퓨터에 있는 복사할 파일의 경로] [컨테이너에서 파일이 위치할 경로]COPY copytest.txt/copytest.txt를 입력하고 저장합니다.위 경로에 copytest.txt라는 파일을 만들어 준 뒤 shell을 실행시키고cd C:\Users\xoxox\docker-image (파일이 저장되어 있는 폴더로 이동) 명령어 입력 후 ls를 입력하여 만든 파일들이 잘 있나 확인 후docker build -t my-first-image . 명령어를 입력하여 이미지를 생성해줍니다.docker image ls 를 입력하여 생성한 이미지가 잘 있나 확인해줍니다. 생성한 이미지를 가지고 컨테이너를 실행해줍니다. 실행한 컨테이너 내부로 접속해 아까 copytest.txt..

12. 도커(Docker) 종료된 컨테이너 강제로 로그 조회

이전 글과 이어집니다.https://steady-snb.tistory.com/74 Dockerfile의 정의와 image 생성Dockerfile이란? Docker이미지는 Docker hub를 통해 다운받아서 사용할 수 있습니다.이 Docker이미지들은 누군가에 의해 생성되어 Docker hub에 올려놓은 것입니다.이 이미지를 생성하기 위해선 Dockerfile을steady-snb.tistory.com  기본적으로 컨테이너는 자신이 실행하는 이미지가 종료되는 순간 컨테이너도 종료됩니다.위의 글에서 생성한 이미지는 jdk를 실행한 후 아무것도 실행할 것이 없기에 자동으로 종료되고 컨테이너도 종료됩니다.따라서 이미지에 jdk실행 후 무언가를 하게끔 하면 강제로 종료되지 않게 할 수 있습니다. 생성했던 Dock..

11. Dockerfile의 정의와 image 생성

Dockerfile이란? Docker이미지는 Docker hub를 통해 다운받아서 사용할 수 있습니다.이 Docker이미지들은 누군가에 의해 생성되어 Docker hub에 올려놓은 것입니다.이 이미지를 생성하기 위해선 Dockerfile을 이용해 생성할 수 있습니다.따라서 Dockerfile은 이미지 생성을 위한 파일입니다.  BaseImage생성 방법 * BaseImage : 컨테이너를 새로 띄워서 환경을 구축할 때 기본적으로 프로그램이 어떤게 깔려있으면 좋을지 선택하는 옵션같은 것을 정의해놓은 파일  우선 shell을 실행 후 mkdir docker-image 입력 후 cd docker-image를 통해 해당 폴더 내로 들어가줍니다. eclipse나 intellij같은 편집툴을 여셔서 만들어준 폴더를..

10. 도커(Docker) 볼륨의 정의와 사용법

우선 도커의 볼륨에 대해 알아보기 전에컨테이너의 특성과 문제점에 대해 알아보겠습니다.  컨테이너의 특성과 문제점 도커는 컨테이너를 활용해 특정 프로그램을 실행할 수 있습니다.이 프로그램에 기능이 추가되면 새로운 이미지를 생성하여 컨테이너를 재실행해야한다.기존 컨테이너에 변경된 부분을 추가하는게 아닌 새로운 컨테이너를 생성해 통으로 갈아끼우는 방식으로 교체를 합니다.이러한 특징 때문에 기존 컨테이너에 저장했던 데이터가 날라가는 현상이 발생합니다.이러한 특징을 방지하고자 볼륨이라는 개념이 도입되었습니다.  도커(Docker)의 볼륨이란? 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법입니다.컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유하여 사용하는 형태입니다. 볼륨(V..