해당 강의를 보고 사내에서 개발서버 인프라구성을 변경중입니다. 해결되지 않는 이슈가 있어서 질문 드립니다. AWS ECS로 배포진행하며, FARGATE가 아닌 EC2(arm64)로 현재 배포중입니다. 로드밸런서(80(443으로 redirect), 443(타겟그룹 전달)) -> 타겟그룹(IP형태의 타겟그룹) -> ECS Task 네트워크 모드는 awsvpc를 사용했으며, task는 private subnet에서 nat gateway와 정상적으로 연결됨을 확인하였습니다. 개발서버로 일부 기능만 내부적으로 테스트 중이라, 트래픽이 거의 없고, task의 CPU와 메모리 사용률은 30%이하를 유지중입니다. 대다수의 트래픽이 정상적으로 통과하지만, 특정 API 호출이 아닌 전반적으로 간헐적으로 로드밸런서에서 504 gateway timeout 이 발생합니다. (타겟그룹엔 정상적으로 healthy 상태로 등록되어 있습니다) ex) 해당 기간내에 health-check 요청만 보내도, 일반적으로 잘 되지만 한번씩 헬스체크 요청조차 504 에러가 발생 기본적으로 잘 접속되지만 간헐적으로 발생하기에 네트워크설정쪽인 NACL이나 보안그룹의 문제는 아닐 것이라고 생각됩니다. nat gateway가 1개이긴하지만 트래픽이 매우 적어 충분할 것 같은데 혹시 가용영역별로 배치를 진행해야 하는걸까요? 혹시 이와 같은 사례를 경험하셨거나 해결방법에 대해 조언을 구하고자 합니다. 운영에서는 아직 ECS를 적용하지않아 EC2로 배포중인데, 해당 로드밸런서는 모니터링에서 504에러가 발생하지 않은 것으로 확인됩니다.
안녕하세요. 베이스 이미지 생성할 때 ENETRYPOINT 입력하여도 계속 종료상태로 선생님과 비교해보니 COMMAND 부분이 'jshell'로 나와서 확인했더니 이렇게 조회되었습니다. "Entrypoint": null, Cmd": [ "jshell" 시도 FROM openjdk:17-jdk ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] CMD [ ] CMD [] 입력 후 RUN 실행되었는데, node 컨테이너 내부 들어가서 -v 입력 시 bash-4.4# node -v bash: node: command not found 이렇게 조회가 됩니다.. (windows vscode로 하고 있습니다.)
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) apiVersion: v1 kind: Pod metadata: name: pod-1 labels: type:web #웹 타입으로 분류 lo:dev spec: containers: - name: container image: kubetm/init type:web은 웹 타임으로 분류하는 것이라고 이해했는데, lo는 무엇을 나타내는 key값인가요?^^
안녕하세요. 볼륨 마지막 실습 강의 듣고 docker hub 관련해서 궁금한 점이 생겼습니다. 도커허브에서 mongo 설명이 아래처럼 적혀있는데, 실습 시 MONGO_INITDB_ROOT_USERNAME , MONGO_INITDB_ROOT_PASSWORD 입력을 하는 이유는 보안에 대한 환경설정을 따로 하신 것일까요? (보안과 관련된 환경변수 설정은 필수가 아니어도 대부분 하는 편인지 궁금합니다 .. : )) How to use this image Start a mongo server instance $ docker run --name some-mongo -d mongo:tag
안녕하세요 선생님, 강의 잘 봤습니다. 선생님이께서 알려주신대로, 제가 하고 있는 프로젝트를 local환경에서 compose를 통해 성공적으로 띄웠습니다. 근데 여기서 궁금한 점이 mysql 이나 redis와 같이 spring boot에 연결하는 건 service 이름을 통해 요청을 하는 반면에, 프론트와 백이 통신할 때는 localhost를 사용해서 통신을 합니다. 어떻게 다른 컨테이너에 띄웠는데 localhost로 통신이 되는 지 궁금합니다. (프론트는 vue.js를 node를 이용해서 정적파일로 build 후 nginx 이미지로 만들었습니다.)
안녕하세요! 강의 실습에서와 같이 바인드 마운트를 사용하는 경우에 1. 호스트 디렉토리 경로에 디렉토리가 이미 존재하는 경우, 호스트 디렉토리의 파일을 컨테이너 경로에 덮어씌움 2.호스트 디렉토리 경로에 디렉토리가 존재하지 않는 경우, 디렉토리를 만들고 컨테이너 경로의 파일들을 호스트 경로에 복사함. 이 두 가지 경우로 나뉘어서 복사되는 규칙이 달라지는데 도커 볼륨을 사용할 때도 동일한 규칙이 적용되나요?? 도커 볼륨에다가 직접 디렉토리를 생성하는 경우는 없을 것 같아서 최초 처음 컨테이너에 볼륨을 연결하는 경우에만 2번으로 동작할 것 같고, 이후에 동일한 볼륨을 다른 컨테이너에 연결할 때는 1번처럼 동작할 것 같은데 맞을까요?
windows powershell로 진행중입니다. 컨테이너 중단 -> 삭제 -> 이미지 삭제 진행 시 docker image rm 이미지id 입력하면 Error response from daemon: No such image ~ 오류가 뜹니다. 강의에서는 이미지 id, 이미지명 두가지 방법으로 모두 삭제가 가능하다고 했는데, 혹시 안되는 이유가 뭘까요?
ubuntu@ip-172-31-44-131:~$ docker run -d -p 8080:8080 kimoon515/neo Unable to find image 'kimoon515/neo:latest' locally latest: Pulling from kimoon515/neo docker: no matching manifest for linux/amd64 in the manifest list entries. See 'docker run --help'. 이런 에러가 발생되는데 어떻게 해야할가요?
위 도표를 보여주시면서 설명을 해주실때, 10시 정각에 스레드 1이 쿠폰 발급 로직을 시작 10시 2분에 완료가 된다면, 스레드 2는 스레드 1의 작업이 모두 종료될때까지 기다렸다림. 스레드 2는 10시 2분에 작업을 시작 이렇게 설명해주셨는데, 이게 잘 이해가 안됩니다... 제 생각에는 아래와 같이 10시에 동시에 처리되는 흐름이 되어야 할 것 같은데요... 즉, 스레드2는 쿠폰 생성 로직이 끝날 때까지 기다리지 않고, 스레드 1이 쿠폰 발급 로직을 수행 중이라도 스레드 2는 곧바로 Redis 값을 받고 독립적으로 로직을 수행 할 수 있을 것 같은데 아닌가요?? 레디스 자체는 싱슬스레드이니 레디스를 찌를때는 무조건 하나씩만 들어가겠지만 스레드 1은 레디스에 찌르고 값을 받아온 후 본인의 비즈니스 로직 수행할때 스레드2가 레디스 서버에 찌를 수는 없는건가요? 제가 이렇게 이해한 부분이 잘못된 것인지, 아니면 제가 강의 설명을 오해한 것인지 혼란스러워 질문을 드리게 되었습니다.
안녕하세요! 컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요? 만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)
강의처럼 myDB라는 DB를 만들고 컨테이너 삭제 후, 다시 실행했을때 그 DB가 남아있는지 확인해봤는데 안남아있네요. 아래의 로그는 제가 했을때의 로그입니다! d----- 2025-04-06 오후 11:25 docker-mysql PS C:\Users\icb16\dockervolume> cd docker-mysql PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -v C:\Users\icb16\dockervolume\docker-mysql -d mysql 24f951c78cbf0dab6bea6b4b8deaf8f29781ae613b3cad782bbf569e44acbda3 PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 24f951c78cbf mysql "docker-entrypoint.s…" 12 seconds ago Up 11 seconds 3306/tcp, 33060/tcp optimistic_elion PS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 24f951 24f951 PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -d -p 3306:3306 -v C:\Users\icb16\dockervolume\docker-mysql\mysql_data:\var\lib\mysql -d mysql 068022ff288d2e9b7a4605e1da688688a43a14c9e0c1d31041d86067466d62a2 PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 068022ff288d mysql "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 068022ff288d mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it 0680 docker: 'docker exec' requires at least 2 arguments Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] See 'docker exec --help' for more information PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it 0680 bash bash-5.1# ls '\var\lib\mysql' bin dev etc lib media opt root sbin sys usr afs boot docker-entrypoint-initdb.d home lib64 mnt proc run srv tmp var bash-5.1# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 9.2.0 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql> create database myDB -> ; Query OK, 1 row affected (0.01 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | myDB | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> ^C mysql> ^C mysql> ^C mysql> exit Bye bash-5.1# exit exit PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 068022ff288d mysql "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia PS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 068 068 PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -d -p 3306:3306 -v C:\Users\icb16\dockervolume\docker-mysql\mysql_data:\var\lib\mysql -d mysql dcb75ed6d3fab0a0a320869e7728179f58299ec0e43b948408c599e8c9ecf089 PS C:\Users\icb16\dockervolume\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dcb75ed6d3fa mysql "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp zealous_spence PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it dcb7 docker: 'docker exec' requires at least 2 arguments Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] See 'docker exec --help' for more information PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it dcb7 bash bash-5.1# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 9.2.0 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql>
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다! [질문 전 답변] 1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]네 3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요]네 ( https://inf.run/DvsRD ) 4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up 으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. ( https://inf.run/Ljaer ) [질문 하기] 다했는데 계속 같은 에러가 나옵니다. Command: ["startvm", "4a4d5c0f-1f65-4098-b0c7-4e8fda8925ff", "--type", "headless"] Stderr: VBoxManage.exe: error: The virtual machine 'cp-k8s-1.30.0(github_SysNet4Admin)' has terminated unexpectedly during startup with exit code 1 (0x1). More details may be available in 'C:\Users\myhr1\VirtualBox VMs\k8s-U1.30.0-ctrd-1.6(github_SysNet4Admin)\cp-k8s-1.30.0(github_SysNet4Admin)\Logs\VBoxHardening.log' VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. 이방법은 무엇인가요