묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
윈도우 환경에서 실행하는데 보이지 않습니다.
안녕하세요 강사님 해당 강의 내용을 따라가는데 제 터미널 환경에서는 volume에 관한 정보를 확인할 수가 없습니다 컨테이너는 정상적으로 실행되고 이제 mysql_data도 생성되는데 안이 비어있더라고요..git bash, powershell, cmd 3개의 환경에서 해봣는데 문제를 해결할 수가 없었습니다...
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
JDBCConnectionException 가 납니다.
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2024-10-09T14:59:40.805Z WARN 1 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata org.hibernate.exception.JDBCConnectionException: unable to obtain isolated JDBC connection [Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] [n/a] at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:100) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]안녕하세요. 강사님. 늘 퀄리티 좋은 강의 감사드립니다. 섹션 6. Docker Compose를 활용해 2개 이상의 컨테이너 관리기에서 스프링부트와 MySQL을 동시에 띄워보는데 위와 같은 예외가 나서 문의드립니다.application.yml에서 url: jdbc:mysql://my-db:3306/mydb로 바꿔도 같은 상황입니다. 이후 계속 시도를 하다가, build.gradle에 있는 jpa관련 의존성을 빼고 도커를 올리니 성공하였습니다. 그리고 다시 도커를 내리고 jpa의존성을 다시 추가하고 도커를 올리니 이제는 redis까지 올려서 운용 중입니다. 하지만 원인이 궁금하여 이렇게 문의 남깁니다. 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
인바운드 보안 그룹 규칙
안녕하세요. 항상 감사합니다. 다름아니라 프론트엔드 개발자(ionic+react+typescript)님과 처음 협업을 하는데요!(레포지토리가 fe, be 따로 존재합니다.)api를 개발해서 전달해드려야 하는데 프론트엔드 개발자님께서 springboot를 로컬에서 실행하시기 어려우실것 같아 제가 일단 배포를 하여 전달드리려고 합니다.(EC2에서 Docker를 활용한 배포 방법을 사용하려합니다.)질문: 1. 이때 ec2 인바운드 보안 그룹 규칙은 ssh, http(80)만 해주면 될까요? tcp(프론트엔드 개발자님의 포트(아마도 8100번))또한 추가해야 하는 부분일까요?2. Nginx, Certbot를 활용해 리버스 프록시를 설정한다면 해당 포트번호도 ec2 인바운드 보안 그룹에 tcp로 추가해야 할까요?3. 백엔드 개발자는 프론트엔드 개발자에게 api를 제공할때 위에 말씀드린 방식으로 진행하는지 여쭙고 싶습니다. 경험이 부족하여 질문이 이상할 수 있는점 양해바랍니다.감사합니다.+추가)일단 docker compose로 ec2에서 빌드까지 했는데요.보안그룹을 모든tcp 0.0.0.0에서 하니깐 잘 돌아갑니다. 하지만 모든tcp를 제거하고 http 80과 https 433을 추가하면 "ERR_CONNECTION_REFUSED"라고 하고 접근이 안되네요. 여기서 http 8080을 추가하면 또 잘되네요. 프로젝트를 할때 모든 tcp로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
Spring Web 의존성을 추가했는데도 intelliJ에서 @RestController 인식이 안 됩니다
안녕하세요'[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기'에서 그대로 따라 했는데이렇게 RestController가 인식이 안 됩니다build.gradle이고 이걸 다시 run했는데 동일합니다 아래는 run 후 콘솔에 찍히는 내용입니다확인 후 답변 부탁드립니다!오후 4:51:31: Executing... > Task :help Welcome to Gradle 8.10.1. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see more detail about a task, run gradle help --task <task> To see a list of command-line options, run gradle --help For more detail on using Gradle, see https://docs.gradle.org/8.10.1/userguide/command_line_interface.html For troubleshooting, visit https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 451ms 1 actionable task: 1 executed 오후 4:51:32: Execution finished.시키기
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
workdir 대신에 RUN mkdir /directory COPY 상대경로 /directory/복사할파일 이런식으로 구현해도 되나요 ?
둘 중 뭐가 보편적으로 사용되는 편인지 궁금합니다! 1번 사안WORKDIR /directory 2번 사안 RUN mkdir /directoryCOPY [복사할 파일의 상대경로] [/directory/복사할 파일]
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
mysql 비밀번호 바꾸기 위해 호스트 저장공간을 지우면 기존의 데이터도 날라가는 게 아닌가요 ?
[실습] Docker로 MySQL 실행시켜보기 - 3 에서 마지막쯤에 비밀번호 바꾸기 위해서기존의 비밀번호로 mysql 접속 후 비밀번호 바꾸기호스트 저장 공간에서 파일들 삭제하기 둘 중 하나를 선택하여 비밀번호 바꿀 수 있다고 하셨습니다! 근데 고민되는 부분이 호스트 저장 공간에서 파일들 삭제해서 새로운 비밀번호로 덮어씌우게 된다면 이건 볼륨의 역할을 활용하지 못한 경우가 아닌가 하는 생각이 들어서요.. 결국 볼륨이란건 호스트 저장 공간의 파일 = 컨테이너 내부의 저장 공간 파일이 동기화되어야 하는 건데 호스트 저장 공간 파일 지우고 새롭게 만드는 거면결국 컨테이너 삭제 생성하는 것과 다를 게 없지 않나요?? 그럼 결국 볼륨의 특성을 살리면서 mysql의 비밀번호를 변경하려면 1번 방법으로 실행할 수 밖에 없는건지 궁금합니다.. ㅠㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Access denied for user 'root'@'localhost' (using password: YES)
https://www.inflearn.com/community/questions/1364596/access-denied-for-user-root-localhost-using-password-yes위 글에서 재성님이 제시해주신 해결방법을 적용해보았습니다. 하지만 여전히 root 계정에 접속이 안됩니다. docker compose down -v 명령어를 통해 볼륨을 제거해도 여전히 해결이 안됩니다. 스프링부트 역시 데이터베이스와 연결되지 않았다는 오류가 로그에 남습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
Docker compose 관련 질문입니다
안녕하세요 재성님! 좋은 강의 너무 잘 듣고 있습니다.다름이 아니라 재성님 강의를 듣고 제 프로젝트에 spring boot mysql 을 함께 컴포즈 파일로 작성하고 있는데localhost:8080으로 접속하org.springframework.web.servlet.resource.NoResourceFoundException: No static resource .이라는 에러 문구가 나옵니다.현재 프로젝트에서는.html 파일을 전혀 사용하지 않아서 이 에러의 원인을 잘 못찾고 있습니다.docker-compose 파일 첨부합니다.감사합니다.services: my-server: build: . ports: - 8080:8080 # my-db의 컨테이너가 생성되고 healthy 하다고 판단 될 때, 해당 컨테이너를 생성한다. depends_on: my-db: condition: service_healthy my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: 저희 비밀번호 MYSQL_DATABASE: mydb # MySQL 최초 실행 시 mydb라는 데이터베이스를 생성해준다. volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: [ "CMD", "mysqladmin", "ping" ] # MySQL이 healthy(정상 작동 하는지)한 지 판단할 수 있는 명령어 interval: 5s # 5초 간격으로 체크 retries: 10 # 10번까지 재시도
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Access denied for user ‘root’@’localhost’ (using password:YES)
compose.ymlservices:instagram-server:image: 420787877062.dkr.ecr.ap-northeast-2.amazonaws.com/instargram-serverports:- 8080:8080depends_on:my-db:condition: service_healthymy-cache-server:condition: service_healthymy-db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: 00000000MYSQL_DATABASE: mydbvolumes:- ./mysql_data:/var/lib/mysqlports:- 3306:3306healthcheck:test: [ "CMD", "mysqladmin", "ping" ]interval: 5sretries: 10my-cache-server:image: redisports:- 6379:6379healthcheck:test: [ "CMD", "redis-cli", "ping" ]interval: 5sretries: 10 이렇게 yml을 설정하고docker inspect 명령어를 사용하여 mysql 정보를 gpt 한테 물어봤더니 아래와 같은 답변이 있었습니다. 현재 MySQL 컨테이너의 상태는 “healthy”로 보이며, 전체적으로 Docker Compose 설정이 잘 작동하고 있다. 하지만 MySQL의 Healthcheck가 Access denied for user 'root'@'localhost' (using password: YES) 오류 메시지를 출력하고 있다. 이는 MySQL이 root 사용자로 접속을 시도할 때 비밀번호 인증에 실패했다는 것을 의미한다. 이를 해결하기 위해서, 비밀번호를 ' 로 감싸서 String으로 인식하도록 유도 하기도 했지만 여전히 문제는 해결되지 않고 있습니다. 구글링을 해본 결과 도커 볼륨과 연관있는 것 같지만 정확한 이유를 모르겠습니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
스프링부트,Mysql작업시 빌드
안녕하세요 강의 듣다 궁금한 점이 생겨서 질문 남깁니다! 스프링 부트,mysql 을 이용하여 프로젝트 작업 진행하기 위해 작업 진행전 docker로 초기 환경 세팅을 하고 두가지 동시에 띄우는 작업을 했습니다! 도커 연결전에는 IDE에서 run버튼을 눌러 작업 확인을 했었는데, 지금은 빌드 하고, compose up해서 확인을 해야하는걸까요? run버튼 누르니까 에러가 뜹니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker에서 mysql 종료하니까 workbench가이렇게 되는데
어떡하죠? ㅠ 들어갈때 원래 비밀번호가 root123이었는데 이번에 password123으로 바뀌고 스키마있던게 다 사라졌어요ㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
nginx가 하는일이 뭔지 궁금합니다
제가 react로 프론트서버만들고 node.js mongodb로 백엔드 서버 만드는건 해봤는데 이거면 충분한거 아닌가요? nginx수업은 아니지만 다른설명봤는데 이해하나도 안가서... 죄송합니다 이해가 잘 안가서 여쭤봅니다 ㅠㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
wsl 환경으로 작업중인데
docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -d -p 3306:3306 -v /mnt/c/Users/SSAFY/desktop/docker/docker-mysql/mysql_data:/var/lib/mysql mysql 명령어 실행시 2024-07-03T08:05:15.221312Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem2024-07-03T08:05:15.221336Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.이런 오류가 발생합니다. 권한부여 등 여러 방법을 시도했지만 모두 실패했고 wsl이 아닌 그냥 윈도우 터미널로 실행했을때는 정상 작동 하엿습니다 어떻게 해결할까요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
호스트경로/mysql_data경로 질문
안녕하세요mysql_data는 어떤 역할하고 있는지 궁금합니다.mysql_data를 없이 docker에 mysql를 넣었는데 실행이 중단되고 아래와 같은 오류가 나와서 이유를 알고싶습니다그리고 항상 docker에 mysql에 호스트 내부에 파일을 저장할때 새로운 my_data의 이름이 아니여도 다른 파일경로를 지정을 해줘야하는건가요?
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
프론트엔드 배포 관련해서 질문 있습니다.
안녕하세요. 쉽고 재미있게 강의 만들어주셔서 잘 보며 공부하고 있습니다! 강의 듣던 중에 하나 궁금한 점이 있어서 질문을 남기게 됐는데요. 현재 Next.js로 프론트엔드 프로젝트를 하는데 AWS의 어떤 서비스로 배포를 하는게 좋을까 고민중입니다. 강의에서 EC2는 보통 백엔드에 사용한다고 하셔서요! S3는 보통 정적인 사이트를 배포할 때 사용하는 것으로 알고 있는데 SSR 서비스 배포 시에는 어떤 서비스로 배포하는걸 추천하시나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
rm -rf mysql_data
10:55 초 쯤 rm -rf mysql_data 로 하고 다시세팅하면기존에 디비들이 다 삭제되고초기화 되는거 아닌가요 !!?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker compose up 시 느려짐 + 프로젝트 실행 안되는 문제
안녕하세요. 항상 좋은 강의 감사합니다.현재 이 강의와 CI/CD 입문/실전 강의를 동시에 수강중입니다. 현재 강의로 배포하는 방법을 익힌 후CI/CD 에서 배운것처럼 무중단 배포로 넘어가려고 하는데 문제가 생겨 질문드립니다... 강사님의 설명대로 할 땐 제대로 스프링부트 파일이 실행이 되었는데개인프로젝트에 진행하려 하니 문제가 생겨서 문의드립니다. 각각의 개인 프로젝트마다환경도 다르고 설정도 달라서 조언주시기 힘드실 수도 있을 것 같습니다. 한 이틀을 꼬박 매달려도안되서 답답한 마음에 질문드립니다... ㅜㅜ 먼저, 현재 주어진 상황입니다1.윈도우환경에서 실습중이고, putty를 활용하여 프로젝트를 진행중에 있습니다.2. 프로젝트는 스프링부트+mysql (스프링시큐리티도 적용)aws의 인바운드규칙에 8080포트는 열어뒀습니다. 그리고 제가 작성한 도커파일과 compose.yml입니다. 운영환경에서 실행시킬거라 ENTRYPOINT를 추가했습니다.FROM openjdk:17-jdk COPY build/libs/*SNAPSHOT.jar /app.jar ENV SPRING_PROFILE="dev" ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILE}", "-jar", "/app.jar"]services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy environment: - SPRING_PROFILES_ACTIVE=dev my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: pwd1234 MYSQL_DATABASE: mydb volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: ["CMD", "mysqladmin", "ping"] interval: 5s retries: 10이러고 docker compose up -d --build를 하면이렇게 나옵니다. 처음엔 프로파일 설정하는 게 문제였는데 위와 같이 설정을 한 후로는 dev로 잘 인식하는 것 같은데 로그 찍히는게 이게 전부입니다. 시행착오 전엔 더 길게 찍히고 db접속되는내용도 나왔었는데 그 후론 이렇게 나오고 전부네요. 문제점은일단 제 ec2의 퍼블릭ip:8080 으로 접속 시 접속이 안되는 점이 제일 큽니다. 제 빌드 파일이 그렇게 크지 않은 것 같습니다. 80mb정도 나오고, EC2는 용량을 30Gb로 설정을 해줬습니다. 그런데 너무너무 느려집니다. docker compose up -d --build 후에 너무너무 느려지고 명령어 하나 치기까지 너무 느려집니다. 모니터링 결과 cpu는 20~30 퍼센트 정도 사용으로 나옵니다. 그래서 인스턴스 재부팅도 여러번해봤지만 compose up만 하면 느려지네요,, 그래서 이 EC2 인스턴스로 연습을 많이 한 것 같아서 필요없는것들 지웠지만 그래도 너무 느려집니다. 그래서 새로 aws 계정을 파서 EC2 인스턴스를 만들어서 실행해봐도 느려지는 문제는 똑같습니다. 스프링시큐리티를 적용했기 때문에 처음 실행할 때 토큰이 나오면 로그인하려 하는데 아예 접속이 안되니 어떡해야할지 모르겠네요 ㅠㅠ....구글링과 gpt로 다 고쳐보고는 있는데 근본적인 문제가 어디일지 감이 안와서 혹시 예상되는 문제점이 있으실까 해서 여쭤봅니다 ㅠㅠ 감사합니다. p.s. 새로 만든 EC2 인스턴스에선 cpu사용률이 99퍼 찍었네요 ㅠㅠ 일단 이것부터 해결하고 오겠습니다...
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
호스트컴퓨터
강의 너무 잘보고있습니다. 컨테이너 개념은 조금 이해가가는데 호스트컴퓨터는 지금 강의에서 우리 각각 개인의pc 라고 이해 하면 될까요 ?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
EC2 콘솔에서 vi compose.yml 파일에서 입력시 문제 발생
위 사진 처럼 타이핑을 치면 타이핑 친 내용이 보이지 않는 문제가 발생하고 있는데 해결하는 방법을 알려주실수있으실까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
디렉토리를 만들고 -v 옵션 사용 시
kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ mkdir mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ cd mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ vi empty.txt kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ ls empty.txt $ docker run -v /Users/kimhj/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=1234 -d -p 3307:3306 mariadb 68669f8d37eb3f6dcff172cca30174958796351621cda19cd0eeff502094f8a2 kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 68669f8d37eb mariadb "docker-entrypoint.s…" 5 seconds ago Up 5 seconds 0.0.0.0:3307->3306/tcp great_hawking 위 코드 처럼 디렉토리를 미리 생성하여 그 디렉토리에 empty.txt를 작성한 후-v 옵션을 통해 실행시키니 강의의 흐름과 달리디렉토리에 mariadb 관련 파일과 empty.txt 가 모두 존재하여 문의 드렸습니다(개인 프로젝트 중 추가적인 공부 목적으로 이 강의를 듣고 있어서 mysql 대신 mariadb를 사용하였습니다)