안녕하세요! 매번 강의 잘 듣고있습니다. 다름이 아니라 매번 이미지를 push 할때마다 에러가 떠서 뭐가 문제지하고 며칠 고민하다가 글을 올립니다. 상황은 아래와 같습니다. postgreSQL 컨테이너 강의를 수강중이였고, 강의 12분35초 실습 내용입니다. 그전까지는 실습 진행하는데 문제 없었습니다. 로그인할때 패스워드는 token을 이용해서 하고 있고, 토큰은 다음과 같이 설정해두었습니다. M2 pro를 사용하고 있으며, 강의는 회사에서 듣고있는데요(사내망 사용) 사내망이여서 이런 문제가 발생했다고 생각해야할까요? 아니면 어느 부분을 확인해야할까요?
안녕하세요. 현재 아래 빨간색 부분 강의 실습을 진행중에 있습니다. root@873e7cd9bbae:/app# ls build/libs 이렇게 했을 때 아래 처럼 정상적으로 파일이 생성되었습니다. Leafy-0.0.1-SNAPSHOT.jar Leafy-0.0.1-SNAPSHOT-plain.jar 그 다음 아래와 같이 실행 했을 때 Error 가 발생했습니다. 주신 실습 파일 그대로 빌드했습니다. root@873e7cd9bbae:/app# java –jar build/libs/Leafy-0.0.1-SNAPSHOT.jar Error: Could not find or load main class –jar Caused by: java.lang.ClassNotFoundException: –jar 이경우 어디를 체크해 봐야 하는 건지요? 감사합니다.
강의를 듣다가 문득 이런 질문이 떠오르더라고요. 지금 저희가 만약 하이퍼 바이저 가상화를 사용한다고 하면 지금 제가 현재 쓰고 있는 windows가 host os가 되고 guest OS의 요청들을 hypervisor를 통해서 system call들을 받게 되는거잖아요. 그럼 컨테이너 가상화에서는 제가 쓰고 있는 Windows(OS)는 아예 배제되는건가요? HostOS가 Linux가 기본이라고 하셨는데 그럼 하이퍼바이저 가상화처럼 Linux라는 OS를 Windows가 host OS가 되어서 쓰는건가요? 조금 복잡하네요 ㅠ
안녕하세요. 데브위키입니다. 강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀 감사합니다.
devcontainer를 통해 vscode에서 개발환경용으로 컨테이너를 만들 수 있다고 이해를 했는데요, 예제의 leafy-frontend 패키지를 보면 leafy-frontend root에 Dockerfile이 있고, .devcontainer 안에도 Dockerfile이 있는데요, .devcontainer 내부의 Dockerfile은 dev container 전용 세팅 Dockerfile인가요 ??
안녕하세요, 강의에서 구현해주신 Primary-Standby Replication 구조가 어떤 명령어를 통해 구성되는지 궁금해서 여쭤봅니다. 실습시에 복붙만 해서 정확히 어떤 명령어가 데이터를 복제해주고 동기화할 수 있는지, standby 쪽에서는 어떻게 읽기만 가능한지 궁금합니다. REPMGR_PRIMARY_HOST 는 Primary로 세팅되고, REPMGR_PARTNER_NODES 는 primary를 제외한 나머지 name:port는 standby로 세팅이 되는게 맞을까요? 추가로, primary-standby 방식에서 primary는 "반드시" 한개여야만 하나요 ? 여러개 일수도 있는지 궁금합니다
COPY . . 와 같은 copy 레이어에서, 기존의 내용과 다른 경우 새로운 레이어를 생성한다고 했는데요, 기존의 내용과 다른지 같은지를 판별하려면 해당 명령어를 실행하여 결과를 가져와서 비교를 해봐야 같은지 다른지 알 수 있지 않나요?? 혹은 실행전에 특정 해시값이 존재하고, 그 해시값은 비교하는 형식으로 캐싱이 동작하나요 ? 궁금합니다!
안녕하세요, 강의를 열심히 수강 중인 학생입니다. (실습을 진행 중인 환경은 맥입니다.) docker push 중에 선생님과 다른 결과창이 떠서 궁금한게 생겨 질문남깁니다. 메세지 내용을 정확하게 이해할 수 없어 챗지피티한테 먼저 물어봤습니다. 지피티한테 답변을 받은 이후에 생긴 궁금증들 입니다. 레이어가 마운트되고 있다는게 정확하게 무슨 의민가요? 우선 레이어도 무엇을 지칭하는지 모르겠습니다만ㅠ 현재 실습상황에서는 docker images 명령어를 통해 image를 확인해보면, 이렇게 나와있습니다. 원본 이미지(devwikirepo/simple-web)가 이미 존재하고 그에 대한 사본(sjin980530/simple-web)이 존재하기에 이런 경우가 발생하는건가요? 그럼 지금 진행하고 있는 실습은 push를 docker hub에 하고있는건데, 로컬의 상황과는 관계없는게 아닌가요?ㅠㅠ 현재 푸시된 이미지가 단일 플랫폼 이미지라는 말은 그럼 제 실습환경(mac)이 아닌 다른 환경(윈도우 등)에서는 사용하지 못하는 이미지라는 뜻인가요? 1과 이어지는 질문입니다 원래 레이어와 푸시된 레이어의 다이제스트가 매핑되고있다라고 하는데, 이건 어떻게 이해하면 될까요? 레이어에 대한 지식이 없어 어떤 상황인지 감이 잘 안잡힙니다. 항상 감사드립니다.
안녕하세요. 항상 감사합니다. 다름아니라 프론트엔드 개발자(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로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.
안녕하세요 '[실습] 백엔드 프로젝트(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로 MySQL 실행시켜보기 - 3 에서 마지막쯤에 비밀번호 바꾸기 위해서 기존의 비밀번호로 mysql 접속 후 비밀번호 바꾸기 호스트 저장 공간에서 파일들 삭제하기 둘 중 하나를 선택하여 비밀번호 바꿀 수 있다고 하셨습니다! 근데 고민되는 부분이 호스트 저장 공간에서 파일들 삭제해서 새로운 비밀번호로 덮어씌우게 된다면 이건 볼륨의 역할을 활용하지 못한 경우가 아닌가 하는 생각이 들어서요.. 결국 볼륨이란건 호스트 저장 공간의 파일 = 컨테이너 내부의 저장 공간 파일이 동기화되어야 하는 건데 호스트 저장 공간 파일 지우고 새롭게 만드는 거면 결국 컨테이너 삭제 생성하는 것과 다를 게 없지 않나요?? 그럼 결국 볼륨의 특성을 살리면서 mysql의 비밀번호를 변경하려면 1번 방법으로 실행할 수 밖에 없는건지 궁금합니다.. ㅠㅠ
강의내용 가상화 기술 사용 이전에는 하나의 OS에서 여러 프로그램을 동작시키는 경우 하나의 프로그램에서 오류가 발생하거나, 주어진 리소스보다 많은 리소스를 사용하면 다른 프로그램에 영향을 미친다. 이에 대한 해결책으로 가상화 기술을 사용하면서 각 프로그램이 독립적으로 동작하며 할당된 자원만을 사용하므로 근본적인 문제를 해결할 수 있다. 라고 이해했습니다. 질문 하지만 결국 호스트 OS가 뻗어버리면 가상화된 방식으로 동작하는 것들도 모두 뻗어버린다고 생각이 들어 근본적인 해결책이 되지는 않는다는 생각이 들었습니다. 얕은 지식으로 생각해본 결과 결국 하나의 컴퓨터에 하나의 프로그램만 돌아가도록 해야할 것 같은데, 이러면 많은 리소스가 사용될 뿐만 아니라 관리의 어려움도 있을 것 같다는 생각이 들었습니다. 제가 너무 극단적인 상황을 생각을 생각하는 걸까요? 실무 레벨에서는 실제로 어떻게 관리하는지, 정말 가상화가 근본적인 해결책이 되는지 등에 대해서 궁금증이 생겨 질문 드립니다. 강의 잘 보고 있습니다. 감사합니다! --- 추가적으로 프론트앤드 개발 환경에서 다양한 환경을 구성해보면서 도커를 공부해보고 싶은데요. 실무에서는 이런 식으로 도커를 활용하니 이런걸 중점적으로 공부하고 구성해보세요. 하는 환경이 있다면 몇개 추천해주시면 감사드리겠습니다!
첫주 환경 구축 중에 Git Bash Winpty 설정하는 부분에서 alsias가 적용되지 않았습니다. 아마 이전에 사용하던 git 설정으로 인해 해당 alias가 적용되지 않은 것 같은데, 위 부분을 넘어가도 괜찮을까요? 제가 사용하고 있는 os는 window 10을 사용하고 있고, git bash의 버전은 2.46.0입니다.
https://www.inflearn.com/community/questions/1364596/access-denied-for-user-root-localhost-using-password-yes 위 글에서 재성님이 제시해주신 해결방법을 적용해보았습니다. 하지만 여전히 root 계정에 접속이 안됩니다. docker compose down -v 명령어를 통해 볼륨을 제거해도 여전히 해결이 안됩니다. 스프링부트 역시 데이터베이스와 연결되지 않았다는 오류가 로그에 남습니다.