inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

ECS 환경에서의 ELB 간헐적 504에러

해결됨

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

해당 강의를 보고 사내에서 개발서버 인프라구성을 변경중입니다. 해결되지 않는 이슈가 있어서 질문 드립니다. 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에러가 발생하지 않은 것으로 확인됩니다.

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
zerolike 댓글 3 좋아요 0 조회수 437

파일복사 윈도우환경 질문

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

PS C:\Temp\docker-practice> docker build -t my-server . [+] Building 1.7s (6/6) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 121B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 1.6s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build context 0.0s => => transferring context: 2B 0.0s => CANCELED [1/2] FROM docker.io/library/ubuntu:latest@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 0.0s => => resolve docker.io/library/ubuntu:latest@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 0.0s => ERROR [2/2] COPY app.txt /app.txt 0.0s ------ > [2/2] COPY app.txt /app.txt: ------ Dockerfile:3 -------------------- 1 | FROM ubuntu 2 | 3 | >>> COPY app.txt /app.txt 4 | 5 | ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] 이런 오류가 뜹니다. 그래서 app.txt를 직접 파일에가서 만들면 안뜨긴하는데 맥이랑 환경이 달라서 그런걸까요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
현미녹차 댓글 3 좋아요 0 조회수 209

ENTRYPOINT 오류

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요. 베이스 이미지 생성할 때 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로 하고 있습니다.)

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
박정화 댓글 2 좋아요 0 조회수 165

docker hub 관련 질문(환경변수 관련)

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요. 볼륨 마지막 실습 강의 듣고 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

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
박정화 댓글 2 좋아요 0 조회수 147

App 배포하기 (helm) - 2232 에서 helm자동인식불가

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

argocd에서 kubeclt배포후 helm배포하기를 해보려는데 git을 선택하면 자동으로 하단에 helm이 선택된다고 하셨는데... 저는 제 경로나 강사님 git 경로 모두 해봐도..자동으로 인식이 되질 않네요...ㅠㅠ 혹시 이유를 확인볼 방법이 있을까요?

  • kubernetes
  • infrastructure
  • container
댓글 3 좋아요 0 조회수 147

프론트와 백 통신

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요 선생님, 강의 잘 봤습니다. 선생님이께서 알려주신대로, 제가 하고 있는 프로젝트를 local환경에서 compose를 통해 성공적으로 띄웠습니다. 근데 여기서 궁금한 점이 mysql 이나 redis와 같이 spring boot에 연결하는 건 service 이름을 통해 요청을 하는 반면에, 프론트와 백이 통신할 때는 localhost를 사용해서 통신을 합니다. 어떻게 다른 컨테이너에 띄웠는데 localhost로 통신이 되는 지 궁금합니다. (프론트는 vue.js를 node를 이용해서 정적파일로 build 후 nginx 이미지로 만들었습니다.)

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
초보 댓글 3 좋아요 1 조회수 257

도커 볼륨을 사용하는 경우에 대해 질문 있습니다.

해결됨

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요! 강의 실습에서와 같이 바인드 마운트를 사용하는 경우에 1. 호스트 디렉토리 경로에 디렉토리가 이미 존재하는 경우, 호스트 디렉토리의 파일을 컨테이너 경로에 덮어씌움 2.호스트 디렉토리 경로에 디렉토리가 존재하지 않는 경우, 디렉토리를 만들고 컨테이너 경로의 파일들을 호스트 경로에 복사함. 이 두 가지 경우로 나뉘어서 복사되는 규칙이 달라지는데 도커 볼륨을 사용할 때도 동일한 규칙이 적용되나요?? 도커 볼륨에다가 직접 디렉토리를 생성하는 경우는 없을 것 같아서 최초 처음 컨테이너에 볼륨을 연결하는 경우에만 2번으로 동작할 것 같고, 이후에 동일한 볼륨을 다른 컨테이너에 연결할 때는 1번처럼 동작할 것 같은데 맞을까요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
eoyeong 댓글 2 좋아요 0 조회수 166

이미지 삭제 시 에러

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

windows powershell로 진행중입니다. 컨테이너 중단 -> 삭제 -> 이미지 삭제 진행 시 docker image rm 이미지id 입력하면 Error response from daemon: No such image ~ 오류가 뜹니다. 강의에서는 이미지 id, 이미지명 두가지 방법으로 모두 삭제가 가능하다고 했는데, 혹시 안되는 이유가 뭘까요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
박정화 댓글 2 좋아요 0 조회수 182

k8s 세팅관련하여 질문드립니다

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

설치 과정에서는 문제 없는데 세션연결이랑 대시보드 접속이 안되네요 ip상에 문제가 있는걸까요? 와이파이로 접속된 노트북으로 했는데 공유기로 할당안받은 ip로 해서 문제인걸까요?

  • kubernetes
  • infrastructure
  • container
최성욱 댓글 2 좋아요 1 조회수 140

컨테이너 레이어 질문 있습니다.

해결됨

개발자를 위한 쉬운 도커

안녕하세요! 컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요? 만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • docker-image
  • container
eoyeong 댓글 1 좋아요 1 조회수 142

volume 관련 부분 mysql로 실행

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

강의처럼 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>

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
댓글 2 좋아요 0 조회수 203

백엔드, 프론트엔드가 나뉘는 경우

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요 선생님, 명강의 잘 듣고 있습니다. 만약 벡엔드와 프론트엔드가 나뉘는 경우라면, 하나의 EC2에 벡엔드 이미지, 프론트 이미지를 각각 컨테이너에 띄워서 연동해주는 방식으로 만들면 될까요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
초보 댓글 3 좋아요 0 조회수 243

이미 로컬에 mysql/redis가 설치되어 있을 때 포트매핑

해결됨

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요! 도커는 처음 접해보는데 강의 정말 잘 듣고 있습니다! 이미 로컬에 DB가 설치가 되어 있는 상태면 강사님께서는 호스트의 DB들을 죽인? 후 포트 매핑을 하셨는데 혹시 호스트 포트 번호를 다르게 매핑 해도 되나요? 예를 들어서 docker -run -p 3307:3306 -d mysql 이런 식이거나 docker -run -p 6380:6379 -d redis 이렇게요!

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
녜진 댓글 2 좋아요 0 조회수 251

리눅스

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요! 수강전 질문 드립니다 재성님 로드맵에서 도커 배우기 전에 리눅스를 배워야한다고 나와있는데 제가 아직 리눅스를 다뤄본적이 없어서 먼저 리눅스를 배우거 오는 것이 좋을까요??

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
최진욱 댓글 2 좋아요 0 조회수 78

컨테이너 가상화 호스트 OS

해결됨

개발자를 위한 쉬운 도커

안녕하세요! 강의 유익하게 듣고 있는 수강생입니다. 컨테이너 가상화 설명에서 궁금증이 생겨 글 남깁니다. (강의 장면 캡쳐가 불가하여 유사 그림으로 대체합니다!!) 도커는 호스트 OS의 커널을 바로 사용한다는 장점이 있다고 이해했습니다. 이때 여기서 호스트 OS가 리눅스라고 명시되어있는데 mac, windows를 사용하는 일반 사용자들도 호스트 os가 리눅스로 적용되는 것일 까요?? 해당 내용을 찾아보니 도커를 사용할 때는 리눅스 커널이 필수적으로 필요해서 가상화된 Linux를 내부적으로 사용한다고 확인했습니다. 이 내용을 리눅스 환경이 아닌경우 도커 내부에 리눅스가 가상화 기술로 적용되어 있다고 이해하는 것이 맞을까요?? 내장되어 있는 것이 맞다면 컨테이너 별로 리눅스가 별도로 포함되는것인지, 도커위에 하나의 리눅스OS를 갖고 있는 것인지 질문드리고 싶습니다! 유익한 강의 정말 감사드립니다 😀

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • docker-image
  • container
teho.lee200 댓글 2 좋아요 1 조회수 218

질문드립니다( headless service)

미해결

쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)

안녕하세요 강사님 해당 강의에서 headless service 통신 테스트를 해봤는데요 deployment + headless service 상황에서 pod내부에 아래 명령어를 했는데 찾지 못한다고하는데 nslookup [pod명].[svc명].[ns].svc.cluster.local 혹시 statufulset만 가능한건가요?

  • kubernetes
  • infrastructure
  • container
bj jung 댓글 2 좋아요 1 조회수 120

소스파일이 안가져와지네요?

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

jenkinsfile을 보면 코드가 주신대로 아래와 같고요 여기에서 [소스파일 체크아웃] 부분이 지나면 jenkins디렉토리 workspace 밑으로 해당 소스파일이 가져와서 폴더가 생성되어야 하는게 아닌지..궁금합니다. 폴더가 일단 생성이 안되구요...맨밑에 이미지 추가한것처럼 helm쪽 파일만 릴리즈파일 체크아웃통해 받아진것 같아요. 또한가지는 [소스빌드] 스텝인데 echo로만 그냥 찍는거지 실제 빌드하는거 아니죠? 체크아웃자체도 안받아져서 빌드도 안될것 같구요. 마지막으로 [컨테이너빌드] cp부분도 echo로 찍는부분이지 실제 copy명령어를 실행하는것도 아니고.. 그런데 docker build 명령어는 실제로 하는데... 위에서 빌드도 문자열만 찍는거고 ...소스도 안받아졌는데 어떻게 docker build는 또 실제로 할수잇는지도 궁금합니다. stage('소스파일 체크아웃') { steps { // 소스코드를 가져올 Github 주소 git branch: 'main', url: ' https://inf.run/M45Zm ' } } stage('소스 빌드') { steps { // 755권한 필요 (윈도우에서 Git으로 소스 업로드시 권한은 644) echo "chmod +x ./gradlew" echo "gradle clean build" } } stage('릴리즈파일 체크아웃') { steps { checkout scmGit(branches: [[name: '*/main']], extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: "/${CLASS_NUM}"]]]], userRemoteConfigs: [[url: "${GITHUB_URL}"]]) } } stage('컨테이너 빌드') { steps { // jar 파일 복사 echo "cp ./build/libs/app-0.0.1-SNAPSHOT.jar ./${CLASS_NUM}/build/docker/app-0.0.1-SNAPSHOT.jar" // 도커 빌드 echo "docker build -t ${DOCKERHUB_USERNAME}/api-tester:v1.0.0 ./${CLASS_NUM}/build/docker" } }

  • kubernetes
  • infrastructure
  • container
odark 댓글 2 좋아요 0 조회수 84

여러개의 was를 compose를 활용하여 실행할때

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

여러개의 was를 compose를 활용하여 실행 할 때 1개의 was만 update 해야하는 상황이 라면 docker compose up --build -d 를 사용해도 괜찮은건가요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
댓글 3 좋아요 0 조회수 229

short 옵션 안되네요?

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

[jenkins@cicd-server api-tester]$ kubectl version --short error: unknown flag: --short See 'kubectl version --help' for usage. short옵션이 안먹힙니다. ㅠㅠ

  • kubernetes
  • infrastructure
  • container
odark 댓글 2 좋아요 1 조회수 84

helm압축푼후 권한

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

curl -O https://inf.run/NjQJ4 tar -zxvf helm-v3.13.2-linux-amd64.tar.gz mv linux-amd64/helm /usr/bin/helm 압축푼후 파일 소유권한으보면 -rwxr-xr-x. 1 1001 docker 51220480 Nov 8 2023 helm 네요..이걸 /usr/bin으로 옮겨놔도..권한땜에 안되는데요..root root 여야하나요? jenkins jenkins여야하나요?

  • kubernetes
  • infrastructure
  • container
댓글 1 좋아요 0 조회수 67

인기 태그

인프런 TOP Writers

주간 인기글