본문 바로가기

Docker10

10. 도커 컴포즈 -(3) 7. 컴포즈로 컨테이너를 동시에 2개 띄워보기이전에 컴포즈의 장점중 여러개의 컨테이너를 하나의 환경에서 실행하고 관리하니 편하고 좋기때문에 사용한다 해서 이번에 동시에 2개 띄워보기 (1) Redis 랑 Mysql 동시에 띄워보기이전과 같이 컨테이너 1개 띄웠을때랑 별 차이 없이 services 하위에 저렇게 따로따로 적고 실행시키면 끝이다. (2) Spring Boot 랑 Mysql 동시에 띄워보기일단 스프링 부트 프로젝트니 이전과 마찬가지로 도커 파일로 이렇게 하나 이번엔 jar 파일을 절대 경로로 적어본다 위에서 했던 redis,mysql 처럼 services 하위에 저렇게 각각 적는데 이번에 보면 mysql 코드쪽에 MYSQL_DATABASE는 컨테이너 생성할때 데이터베이스도 생성해주는 옵션이다... 2024. 11. 19.
9. 도커 컴포즈 -(2) 4. 도커 컴포즈로 Redis 실행시키기$ docker run -d -p 6379:6379 residCompose.yml에 적은거 보면 이전 명령어CLI에 했던거랑 같은뜻$ docker compose up -d$ docker compose ps$ docker ps$ docker exec -it [컨테이너 ID 또는 컨테이너명] bash$ redis-cli127.0.0.1:6379> set 1 seok127.0.0.1:6379> get 1이렇게 컴포즈로 실행 시켜보고 레디스 접속후 데이터 넣고 확인해보니 정상 작동한다.  5. 도커 컴포즈로 MySQL 실행시키기$ docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/jaeseong/Docume.. 2024. 11. 18.
8. 도커 컴포즈 -(1) 1. 도커 컴포즈를 사용하는 이유도커 컴포즈(Docker Copmose)란?여러 컨테이너를 하나의 묶음으로 관리할 수 있게 도와주는 툴이다 (1) 여러개의 컨테이너를 하나의 환경에서 실행하고 관리하니 편하고 좋기때문에 사용(2) 컨테이너를 복잡한 명령어로 실행시키던걸 간소화 시킬 수 있다. 이전에 Mysql  생성,실행,호스트-컨테이너 포트 연결,볼륨 연결할때 명령어보면 복잡한데 이거를docker compose up 명령어로 간단하게 해결 가능하다$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql .. 2024. 11. 18.
7. 도커파일 -(2) 4.  스프링 프로젝트를 도커로 실행도커파일에 이렇게 스냅샵 파일을 복사하는데 컨테이너의 최상위인 상대경로로 복사 하는거다.(컨테이너 어디에 복사하던 절대경로로 하던 맘대로)FROM openjdk:17-jdkCOPY build/libs/*SNAPSHOT.jar app.jarENTRYPOINT ["java","-jar","/app.jar"] 인텔리제이 GUI로 직접 빌드하거나 명령어로 빌드하고 빌드하고나면 build-libs에 스냅샵 자르 파일이 생성되는데이거로 이제 프로젝트를 실행 시키는거니 컨테이너에 이거를 복사해야한다.$ ./gradlew clean build 이후 해당 컨테이너 로그 찍어보고 직접 크롬에서 요청해보니 정상 작동한다$ docker build -t hello-server .$ docke.. 2024. 11. 15.
6. 도커 파일 -(1) 1.도커 파일이란?도커 이미지는 도커허브를 통해 다운 받는건데,이 이미지도 누군가 말들어서 도커 허브에 올려둔거다.그래서 도커파일을 이용해서 이미지를 만들 수 있다.이거를 사용하는 이유는 도커 허브에 있는 이미지를 말고 나만의 이미지를 만들고 싶을때 있다. 예를들어 도커파일로 스프링 부트 프로젝트 자체를 이미지로 만들고 이미지를 만들 수 있다. 2.FROM: 베이스 이미지 생성(1) 개념FROM은 베이스 이미지를 생성하는 역활을 하는데,도커 컨테이너에 특정 초기 이미지 셋팅 할 수 있는걸 말한다.쉽게 말하자면 컴퓨터 새로 사면 인터넷,그림판,메모장등 많이 깔려있는데 이거랑 같다. 즉 누구는 스프링 프로젝트때문에 JDK 깔려있는 셋팅 바랄수도 있고 누구는 노드프로젝트 때문에 Node가 깔려있는 셋팅 바랄수.. 2024. 11. 15.
5. 도커 볼륨 -(2) 4. 도커로 Mysql 실행시켜보기 - (2)(1) 볼륨(Volume)을 활용해 MySQL 컨테이너 띄우기 이제 볼륨을 사용할거니 호스트 컴퓨터에 볼륨 생성 원하는 위치 경로로 이동후 폴더 생성후 해당 폴더에 들어간다mkdir [폴더명] #현재 경로에서 해당폴더를 생성한다# docker run -e MYSQL_ROOT_PASSWORD={비밀번호} -p 3306:3306 -v {호스트의 절대경로}/{호스트에 생성할 폴더}:/var/lib/mysql -d mysql$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql .. 2024. 11. 14.
4. 도커 볼륨 -(1) 1. 컨테이너의 문제점컨테이너에 어떤 이미지가 있는데 그 이미지에 기능이 추가되면(업뎃) 새로운 이미지를 만들어서 컨테이너를 실행해야한다. 근데 지금까지는 기존 컨테이너 수정하지 않고 아예 새로운 컨테이너를 만들고 새로운 이미지 넣는 방식을 했다.하지만 생각해보면 Mysql의 경우 이렇게 하면 기존에 있던 데이터 다 날라가서 문제이니 이러한 문제를 볼륨으로 해결 2. 도커 볼륨(Docker Volume)이란?도커 볼륨이란? 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법이고, 볼륨은 컨테이너 자체의 저장 공간을 사용하는게 아닌 호스트 컴퓨터 저장공간을 사용하는거다.만약 컨테이너가 볼륨에 A라는 디렉토리를 저장하려하는데 이미 볼륨에 A라는 디렉토리가 있다면 호스트에 있는A가 컨테이너에 덮어 씌우고,볼륨.. 2024. 11. 14.
3. 도커의 명령어 -(2) 1. 컨테이너 조회,중단,삭제(1) 컨테이너 조회docker ps 랑 docker ps -a 랑 차이점은 실행 중인 컨테이너만 조회 모든 컨테이너를 조회이다.$ docker ps -a # 모든 컨테이너 조회$ docker ps # 실행 중인 컨테이너 조회 (2) 컨테이너 중단stop 이랑 kill 두가지가 있는데 차이점은 예시로 내 컴퓨터를 정상적으로 종료 할때를 stop 의 경우고, 컴퓨터가 먹통되서 본체 전원눌러서 무식하게 종료하는걸 kill 이라 본다.그러므로 평소에 stop으로 종료하다가 stop으로 해도 안되고 문제생겼는데 강제 종료해야할때 kill 사용한다.$ docker stop 컨테이너명[또는 컨테이너 ID]$ docker kill 컨테이너명[또는 컨테이너 ID] (2) 컨테이너 삭제  [.. 2024. 11. 13.
2. 도커의 명령어 -(1) 1. 이미지 다운로드# docker pull 이미지명$ docker pull nginx # docker pull nginx:latest와 동일하게 작동 (1) 이미지를 어디서 다운받는걸까?저렇게 명령어치고 다운받은 이미지는 도커허브 라는 사이트에서 다운받는데, 도커허브는 깃허브 처럼 사람들이 이미지들을 올려둬서 그걸 다운받는거다.즉 Dockerhub는 Github처럼 이미지를 저장 및 다운받을 수 있는 저장소 역할을 하고 있다. 사진보면 도커허브에서 nginx 검색후 Tag부분 보면 저거는 nginx의 버전들을 말하는거다. (2) 특정 버전 이미지 다운로드 받기근데 태그명을 안붙이고 이미지명만 적으면 위에 1번 명령어 보면 기본값으로 :latest 가 붙는데 이건 최신버전을 말한다.# docker pul.. 2024. 11. 13.