묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발자를 위한 쉬운 도커
k8s 강의 일정
선생님 안녕하세요혹시 k8s 는 오픈 예정이 언제쯤일까요..?회사에서 이제 쓰게될거 같아 공부하려고 하는데선생님의 강의로 듣고 싶어 기다리는 중입니다ㅎㅎ
-
미해결개발자를 위한 쉬운 도커
컨테이너의 Stateless 제약 관련 질문
안녕하세요! 강의 재밌게 잘듣고 있습니다 :] 컨테이너의 Stateless 제약 -> 상태가 업식 때문에 저장 및 공유가 필요한 데이터는 무조건 외부에 저장해야합니다. 라는 내용을 보다가 실무에서는 어떤지 궁금증이 생겼습니다.실무에서는 DB를 도커로 띄어서 운영을 하는 경우에, DB의 정보들을 별도로 외부에 저장을 하는 것인지 궁금합니다!제가 생각한 바로는 1. 배치 또는 스냅샷을 사용해서 일정주기마다 백업을 한다. (이 방법을 사용하면 컨테이너가 사라졌을 때와 가장 최근 백업 사이에 간격이 어쩔 수 없이 발생할 것 같다는 생각이 들었습니다.)2. DB는 RDS 같은 서비스가 있기 때문에 도커를 굳이 사용하지 않는다.강사님의 의견을 여쭤보고 싶습니다!
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
argocd 배포 이슈
안녕하세요.우분투 22.04에서 실습하는데, argocd에 배포시 이슈가 있어 문의 드립니다.서버에 minikube 설치 후 테스트를 진행하였고 argocd에서 배포할 때 강사님의 github에 있는 manifest에서 sync를 맺으려고 하면, Failed to load live state: namespace "default" for Service "welcome-svc" is not managed 와 같은 메세지가 나오는데요.roll-binding, config map 수정등의 작업을 수행해도 sync시에 default namespace에서의 에러가 발생합니다.감사합니다.
-
해결됨개발자를 위한 쉬운 도커
docker pull [이미지] 다운로드시 에러 해결 방법 문의
docker 실습을 위해서Windows 환경에 WSL v2 버전 설치 후 docker를 올렸습니다. docker search 시에는 검색이 되는데docker pull 을 하면 아래의 에러가 발생됩니다. "Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: TLS handshake timeout"😢 인터넷에 찾아보니 인터넷 속도가 느려서라는데 인터넷 속도는 100Mbps로 늦을 이유가 없습니다. 혹시 다른 해결책이 있을까요? 실습이 불가능하여 이론 공부만 계속 하고 있어요 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
강의 재생 오류
다른강의들은 다 잘 재생이 되는데 50.도커볼륨 강의만 중간에 로딩 spinner가 뜨면서 재생에 문제가 생겼어요 alert 창과 함께 영상이 재생되지 않습니다. 이럴 경우는 어떻게 해야할까요?
-
해결됨개발자를 위한 쉬운 도커
Remote JVM Debug Setting
실무에서 도커를 사용하고 있지만 intelliJ 에서 spring app을 실행하고 개발환경을 맞출 수 있다는 생각은 안해봤습니다. 좋은 내용 감사합니다.다만 remote JVM Debug 설정을 추가할 때 before launch 설정중 '+'에서 'Lanch Docker Before Debug' 옵션이 없는데 왜그런걸까요? 확인해주시면 감사하겠습니다. 좋은 하루 되세요
-
해결됨개발자를 위한 쉬운 도커
빌드 방식에 대해 질문 있습니다.
빌드 방식 설명에서도커 파일을 작성해서 이미지 빌드 명령을 실행하면도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다.이렇게 그림으로 되어있는데,커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요?임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데,이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
argocd 이미지 pull 문제...
argocd에서 sync를 하여 cd를 하게 되면, 몇초 이따가 STATE: ImageInspectError, STATE DETAILS: Failed to inspect image "": rpc error: code = Unknown desc = unable to convert a nil pointer to a runtime API image 라는 에러가 발생합니다.여러 자료를 찾아보니 인증서 문제 같다고 하여서 호스트 PC에서 Harbor의 cicd-web-project:태그를 docker pull 하여 보니 tls: failed to verify certificate: x509: certificate signed by unknown authority 인증서 관련 에러가 발생하였습니다.아무래도 자체 인증으로 인하여 Harbor 레지스트리에서 신뢰하지 못하는 CA 인증서를 사용하기 때문인 것 같은데, 강사님께서 강의를 하시기 이전에 이러한 문제가 생겨서 조치한 부분이 있으실까요? 아니면, 이 부분은 Docker 업데이트로 인하여 이제는 제가 따로 인증서를 구하여 적용을 해야할까요?? 추후에 프로젝트에서 쿠버네티스까지 적용할 예정이어서 argocd에 대한 테스트를 정확히 하고 싶은데, 지금은 눈으로 보고 넘어가고, 프로젝트를 할때, 제대로 된 인증서를 발급 받아서 붙이는게 나을까요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너 레이어 질문 있습니다.
안녕하세요!컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요?만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)
-
해결됨개발자를 위한 쉬운 도커
컨테이너 가상화 호스트 OS
안녕하세요! 강의 유익하게 듣고 있는 수강생입니다.컨테이너 가상화 설명에서 궁금증이 생겨 글 남깁니다.(강의 장면 캡쳐가 불가하여 유사 그림으로 대체합니다!!) 도커는 호스트 OS의 커널을 바로 사용한다는 장점이 있다고 이해했습니다. 이때 여기서 호스트 OS가 리눅스라고 명시되어있는데 mac, windows를 사용하는 일반 사용자들도 호스트 os가 리눅스로 적용되는 것일 까요??해당 내용을 찾아보니 도커를 사용할 때는 리눅스 커널이 필수적으로 필요해서 가상화된 Linux를 내부적으로 사용한다고 확인했습니다. 이 내용을 리눅스 환경이 아닌경우 도커 내부에 리눅스가 가상화 기술로 적용되어 있다고 이해하는 것이 맞을까요??내장되어 있는 것이 맞다면 컨테이너 별로 리눅스가 별도로 포함되는것인지, 도커위에 하나의 리눅스OS를 갖고 있는 것인지 질문드리고 싶습니다!유익한 강의 정말 감사드립니다 😀
-
해결됨개발자를 위한 쉬운 도커
강의 이미지 사용
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 저는 공부할때 공부한 내용을 정리하고 벨로그에 포스팅하는데요. pdf 이미지 (에를 들어 컨테이너의 라이프 사이클) 를 캡처 해서 같이 올려도 괜찮을 까요?
-
미해결개발자를 위한 쉬운 도커
도커컴포즈 오류
docker-compose up -d 할때 leafy_leafy-front_1가 자꾸 꺼지고 restart 되는게 반복되는데 docker logs leafy_leafy-front_1 를로 확인해본결과exec /usr/local/bin/docker-entrypoint.sh: no such file or directory라는 오류가 있네요 윈도우로 수업 들을때는 문제없었는데 aws ec2 아마존 리눅스 에서 돌려보니 해당 오류가 계속 생겨서 질문드립니다검색 및 예전 답변을 참고해서 crlf 를 lf 로 바꿔도보고 새로 clone 해보고 했는데 여전히 오류 입니다.윈도우에서는 되다가 오히려 리눅스 환경에서 안되는게 이유를 모르겠습니다 ㅠㅠ 답변 부탁합니다
-
해결됨개발자를 위한 쉬운 도커
USER 명령어와 관련하여 질문드립니다
Dockerfile-meta 작성하실 때,USER node를 작성하셨는데, 실제로 컨테이너가 실행되는 환경에서 node가 없으면 에러나야할 것 같은데, node:14환경에서는 node user가 이미 존재하는 이미지인건가요?
-
해결됨개발자를 위한 쉬운 도커
강의 예정
안녕하세요. 데브위키님!예전에 3월중으로 새로운 강의를 낼 계획이라고 하셨었는데 혹시 나올까요!?나온다면 언제쯤 나올까요?ㅎㅎ
-
해결됨개발자를 위한 쉬운 도커
실행오류
3티어 아키텍처 구성 강의중docker run -d --name leafy-postgres -v mydata://var/lib/postgresql/data --network leafy-network devwikirepo/leafy-postgres:1.0.0 docker run -d -e DB_URL=leafy-postgres --name leafy --network leafy-network devwikirepo/leafy-backend:1.0.0docker run -d -p 80:80 --name leafy-front --network leafy-network leafy-front:3.0.0-proxy를하는 과정에서 leafy-postgres 컨테이너 실행 이후 leafy컨테이너를 실행과동시에 leafy가 exit 되네요 로그가 이런데 어떤문제일까요 ? 2025-03-09 11:24:36.857 GMT [1] LOG: database system is ready to accept connections2025-03-09 11:26:15.754 GMT [35] FATAL: password authentication failed for user "myuser"2025-03-09 11:26:15.754 GMT [35] DETAIL: Role "myuser" does not exist. Connection matched pg_hba.conf line 99: "host all all all md5" leafy-postgres 로그 찍어보니 권한 문제같은데 myuser가 맞지않나요 ? docker rm -f leafy leafy-front leafy-postgres 여러번 시도해도 오류가 생깁니다
-
해결됨개발자를 위한 쉬운 도커
Docker leafy-backend 실행오류
https://www.inflearn.com/community/questions/1532164/docker-%EB%B0%B1%EC%95%A4%EB%93%9C-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%98%A4%EB%A5%98이 글처럼 똑같이 안되고있습니다.Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processorMetrics' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.micrometer.core.instrument.binder.system.ProcessorMetrics]: Factory method 'processorMetrics' threw exception; nested exception is java.lang.NullPointerExceptionat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1616) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1573) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1417) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1349) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2119) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2113) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryConfigurer.addBinders(MeterRegistryConfigurer.java:87) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10]at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryConfigurer.configure(MeterRegistryConfigurer.java:68) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10]at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryPostProcessor.postProcessAfterInitialization(MeterRegistryPostProcessor.java:64) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:455) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.26.jar!/:5.3.26]... 71 common frames omittedCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.micrometer.core.instrument.binder.system.ProcessorMetrics]: Factory method 'processorMetrics' threw exception; nested exception is java.lang.NullPointerExceptionat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.26.jar!/:5.3.26]at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.26.jar!/:5.3.26]... 93 common frames omittedCaused by: java.lang.NullPointerException: nullat java.base/jdk.internal.platform.cgroupv2.CgroupV2Subsystem.getInstance(Unknown Source) ~[na:na]at java.base/jdk.internal.platform.CgroupSubsystemFactory.create(Unknown Source) ~[na:na]at java.base/jdk.internal.platform.CgroupMetrics.getInstance(Unknown Source) ~[na:na]at java.base/jdk.internal.platform.SystemMetrics.instance(Unknown Source) ~[na:na]at java.base/jdk.internal.platform.Metrics.systemMetrics(Unknown Source) ~[na:na]at java.base/jdk.internal.platform.Container.metrics(Unknown Source) ~[na:na]at jdk.management/com.sun.management.internal.OperatingSystemImpl.<init>(Unknown Source) ~[na:na]at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl.getOperatingSystemMXBean(Unknown Source) ~[na:na]at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl$3.nameToMBeanMap(Unknown Source) ~[na:na]at java.management/sun.management.spi.PlatformMBeanProvider$PlatformComponent.getMBeans(Unknown Source) ~[na:na]at java.management/java.lang.management.ManagementFactory.getPlatformMXBean(Unknown Source) ~[na:na]at java.management/java.lang.management.ManagementFactory.getOperatingSystemMXBean(Unknown Source) ~[na:na]at io.micrometer.core.instrument.binder.system.ProcessorMetrics.<init>(ProcessorMetrics.java:81) ~[micrometer-core-1.9.9.jar!/:1.9.9]at io.micrometer.core.instrument.binder.system.ProcessorMetrics.<init>(ProcessorMetrics.java:76) ~[micrometer-core-1.9.9.jar!/:1.9.9]at org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration.processorMetrics(SystemMetricsAutoConfiguration.java:59) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.26.jar!/:5.3.26]... 94 common frames omitted docker logs -f leafy 했을 때 이렇게 나와요..커뮤니티에 나와있는대로 삭제했다가 다시 깔아봤고, name을 잘못적었는지도 확인해보았는데 전혀 잘못된게 없었습니다.leafy-postgres도 'Leafy 애플리케이션 구성' 강의에서 말씀하신것처럼 정상작동하는 것도 확인했습니다.docker inspect leafy-postgres | grep -A 2 "Networks" 를 치면 "Networks": { "leafy-network": { "IPAMConfig": null, 이렇게 나오고 있습니다.어떻게 해야할까요 빠른답변 부탁드리겠습니다.
-
해결됨개발자를 위한 쉬운 도커
이미지의 세부 정보 조회 오류
분명 이미지가있는데 왜 없다고 나올까요?
-
해결됨개발자를 위한 쉬운 도커
wsl 설치 오류
안녕하세요 4단계는 해결했는데5단계에서 지정한 경로를 찾을 수 없다는 오류가 발생하네요.. powershell에서 wsl만 앞에 붙으면 다 지정된 경로를 찾을 수 없다고 뜨네요 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
도커 설치 오류
안녕하세요 도커 설치 도중 오류가 발생해서 질문 드립니다!docker desktop 설치 후 실행 시 위와 같은 에러가 발생해서 wsl 설치를 따라 진행하던 도중 4단계 커널 업데이트 패키지 설치에서 이런 에러가 발생해서 진행이 안되네요 ㅠ
-
미해결개발자를 위한 쉬운 도커
안녕하세요. 레이어 관리 관련해서 질문드리고 싶습니다.
TOPIC1. 레이어 관리에서 RUN 지시어 사용 시 && 연산자를 사용하여 레이어의 개수를 5개에서 1개로 줄이고 있는데요. 이미지의 사이즈를 줄이고 빌드 속도를 높이기 위함. 이라고 말씀을 해주셨습니다.먼저, 질문은 2가지입니다.레이어의 사이즈가 동일한데, 어떤 관점으로 이미지의 사이즈가 축소되는 것인가?레이어의 재활용성에 대해서 어떻게 생각하시는지? 레이어의 사이즈를 봤을 때 5개, 1개의 사이즈가 116MB로 동일하니 이미지의 사이즈는 동일한 것으로 보입니다. 1개의 레이어는 5개의 레이어를 별도로 불러와서 빌드하지는 않으니 속도가 빨라질 수는 있을 것 같다는 생각이 들어서 빌드의 속도는 빨라지나 이미지의 사이즈가 줄어든다. 라는 부분이 이해가 되지 않았습니다.흔한 케이스는 아닐 것 같으나, 5개의 레이어를 분리를 하게 되면 레이어를 재사용 할 수 있는 장점이 있을 것 같다는 생각이 들었습니다.마치, 깃을 다룰 때 한 개의 커밋에 하나의 기능만 포함하도록 한 느낌처럼요. 적절하게 레이어를 분리하는 시점을 찾는 것이 중요한 것으로 얘기를 해주신걸까? 하는 생각을 해봤습니다.