묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커 볼륨을 사용하는 경우에 대해 질문 있습니다.
안녕하세요!강의 실습에서와 같이 바인드 마운트를 사용하는 경우에 1. 호스트 디렉토리 경로에 디렉토리가 이미 존재하는 경우, 호스트 디렉토리의 파일을 컨테이너 경로에 덮어씌움2.호스트 디렉토리 경로에 디렉토리가 존재하지 않는 경우, 디렉토리를 만들고 컨테이너 경로의 파일들을 호스트 경로에 복사함. 이 두 가지 경우로 나뉘어서 복사되는 규칙이 달라지는데 도커 볼륨을 사용할 때도 동일한 규칙이 적용되나요??도커 볼륨에다가 직접 디렉토리를 생성하는 경우는 없을 것 같아서 최초 처음 컨테이너에 볼륨을 연결하는 경우에만 2번으로 동작할 것 같고, 이후에 동일한 볼륨을 다른 컨테이너에 연결할 때는 1번처럼 동작할 것 같은데 맞을까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
이미지 삭제 시 에러
windows powershell로 진행중입니다. 컨테이너 중단 -> 삭제 -> 이미지 삭제 진행 시 docker image rm 이미지id 입력하면 Error response from daemon: No such image ~ 오류가 뜹니다. 강의에서는 이미지 id, 이미지명 두가지 방법으로 모두 삭제가 가능하다고 했는데, 혹시 안되는 이유가 뭘까요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
k8s 세팅관련하여 질문드립니다
설치 과정에서는 문제 없는데 세션연결이랑 대시보드 접속이 안되네요 ip상에 문제가 있는걸까요?와이파이로 접속된 노트북으로 했는데 공유기로 할당안받은 ip로 해서 문제인걸까요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너 레이어 질문 있습니다.
안녕하세요!컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요?만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
volume 관련 부분 mysql로 실행
강의처럼 myDB라는 DB를 만들고 컨테이너 삭제 후, 다시 실행했을때 그 DB가 남아있는지 확인해봤는데 안남아있네요.아래의 로그는 제가 했을때의 로그입니다!d----- 2025-04-06 오후 11:25 docker-mysqlPS C:\Users\icb16\dockervolume> cd docker-mysqlPS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -v C:\Users\icb16\dockervolume\docker-mysql -d mysql24f951c78cbf0dab6bea6b4b8deaf8f29781ae613b3cad782bbf569e44acbda3PS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES24f951c78cbf mysql "docker-entrypoint.s…" 12 seconds ago Up 11 seconds 3306/tcp, 33060/tcp optimistic_elionPS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 24f95124f951PS 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 mysql068022ff288d2e9b7a4605e1da688688a43a14c9e0c1d31041d86067466d62a2PS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES068022ff288d mysql "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatiaPS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES068022ff288d mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatiaPS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it 0680docker: 'docker exec' requires at least 2 argumentsUsage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]See 'docker exec --help' for more informationPS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it 0680 bashbash-5.1# ls'\var\lib\mysql' bin dev etc lib media opt root sbin sys usrafs boot docker-entrypoint-initdb.d home lib64 mnt proc run srv tmp varbash-5.1# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 9.2.0 MySQL Community Server - GPLCopyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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> ^Cmysql> ^Cmysql> ^Cmysql> exitByebash-5.1# exitexitPS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES068022ff288d mysql "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatiaPS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 068068PS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESPS 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 mysqldcb75ed6d3fab0a0a320869e7728179f58299ec0e43b948408c599e8c9ecf089PS C:\Users\icb16\dockervolume\docker-mysql> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdcb75ed6d3fa mysql "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp zealous_spencePS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it dcb7docker: 'docker exec' requires at least 2 argumentsUsage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]See 'docker exec --help' for more informationPS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it dcb7 bashbash-5.1# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 9.2.0 MySQL Community Server - GPLCopyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 입문/실전
백엔드, 프론트엔드가 나뉘는 경우
안녕하세요 선생님, 명강의 잘 듣고 있습니다.만약 벡엔드와 프론트엔드가 나뉘는 경우라면,하나의 EC2에 벡엔드 이미지, 프론트 이미지를 각각 컨테이너에 띄워서 연동해주는 방식으로 만들면 될까요?
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
이미 로컬에 mysql/redis가 설치되어 있을 때 포트매핑
안녕하세요! 도커는 처음 접해보는데 강의 정말 잘 듣고 있습니다! 이미 로컬에 DB가 설치가 되어 있는 상태면 강사님께서는 호스트의 DB들을 죽인? 후 포트 매핑을 하셨는데 혹시 호스트 포트 번호를 다르게 매핑 해도 되나요?예를 들어서 docker -run -p 3307:3306 -d mysql 이런 식이거나 docker -run -p 6380:6379 -d redis 이렇게요!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
리눅스
안녕하세요! 수강전 질문 드립니다재성님 로드맵에서 도커 배우기 전에 리눅스를 배워야한다고 나와있는데 제가 아직 리눅스를 다뤄본적이 없어서 먼저 리눅스를 배우거 오는 것이 좋을까요??
-
해결됨개발자를 위한 쉬운 도커
컨테이너 가상화 호스트 OS
안녕하세요! 강의 유익하게 듣고 있는 수강생입니다.컨테이너 가상화 설명에서 궁금증이 생겨 글 남깁니다.(강의 장면 캡쳐가 불가하여 유사 그림으로 대체합니다!!) 도커는 호스트 OS의 커널을 바로 사용한다는 장점이 있다고 이해했습니다. 이때 여기서 호스트 OS가 리눅스라고 명시되어있는데 mac, windows를 사용하는 일반 사용자들도 호스트 os가 리눅스로 적용되는 것일 까요??해당 내용을 찾아보니 도커를 사용할 때는 리눅스 커널이 필수적으로 필요해서 가상화된 Linux를 내부적으로 사용한다고 확인했습니다. 이 내용을 리눅스 환경이 아닌경우 도커 내부에 리눅스가 가상화 기술로 적용되어 있다고 이해하는 것이 맞을까요??내장되어 있는 것이 맞다면 컨테이너 별로 리눅스가 별도로 포함되는것인지, 도커위에 하나의 리눅스OS를 갖고 있는 것인지 질문드리고 싶습니다!유익한 강의 정말 감사드립니다 😀
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
질문드립니다( headless service)
안녕하세요 강사님해당 강의에서 headless service 통신 테스트를 해봤는데요deployment + headless service 상황에서pod내부에 아래 명령어를 했는데 찾지 못한다고하는데nslookup [pod명].[svc명].[ns].svc.cluster.local 혹시 statufulset만 가능한건가요?
-
미해결쿠버네티스 어나더 클래스-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" } }
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
여러개의 was를 compose를 활용하여 실행할때
여러개의 was를 compose를 활용하여 실행 할 때1개의 was만 update 해야하는 상황이 라면docker compose up --build -d 를 사용해도 괜찮은건가요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
short 옵션 안되네요?
[jenkins@cicd-server api-tester]$ kubectl version --shorterror: unknown flag: --shortSee 'kubectl version --help' for usage.short옵션이 안먹힙니다. ㅠㅠ
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
helm압축푼후 권한
curl -O https://inf.run/NjQJ4tar -zxvf helm-v3.13.2-linux-amd64.tar.gzmv linux-amd64/helm /usr/bin/helm 압축푼후 파일 소유권한으보면-rwxr-xr-x. 1 1001 docker 51220480 Nov 8 2023 helm네요..이걸 /usr/bin으로 옮겨놔도..권한땜에 안되는데요..root root 여야하나요?jenkins jenkins여야하나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
구버전 명령어
최신 도커 버전부터(2~3년전?)는명령어가 달라진걸로 아는데구/신 버전 명령어를 혼합해서 사용해도 괜찮을까요?조금 헷갈리는 부분도 있네요
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
nginx를 모든 컨테이너에 설치를 해줘야하나요??
아직 강의를 다 듣진않았지만...nginx에서 각 컨테이너로 프록시를 해주려면어떻게 해야하나요?혹시 강의내에 내용이 있을까요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
maxSurge 와 maxUnavailable 과 관련한 질문입니다.
현재의 서비스 되고 있는 POD 의 갯수와 지정된 %를 곱했을 때 이것이 정수로 나누어 떨어지지 않을 경우 maxUnavailable 은 소수내림을 하고 maxSurge 는 소수올림을 하는 것으로 이해했는데이제 맞는 건지요? 좋은 강의 감사합니다.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
secret type_docker-registry
"이름 때문에 기대가 너무 컸던 Secret" 강의 내용에 대한 질문 입니다. secret type 중 docker-registry 를 소개해주셨는데 공식 문서에서 해당 타입을 사용하는 예로 써 kubectl 명령어를 이용한 생성에 대한 언급만 있습니다. docker-registry 유형은 yaml 로 생성하여 사용 가능한것인지가 궁금합니다 ..! cafe:https://inf.run/X6Tbp
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
docker hub에서 이미지못가져와요 ㅠㅠ
강의대로 그대로 하고 마지막까지 왔는데2121-deploy 하니까 파드 ImagePullBackOff 상태가 되네요...혹시 dockerhub사이트에서 accessToken 발생하고 secret생성하고 sa등록해주는 그런 절차같은게 필요하나요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
실무 개발 환경
안녕하세요. 재밌고 좋은 강의를 해주셔서 감사합니다. 아직 70%정도 보고 있지만 궁금하게 있습니다.현재 백엔드 개발자로 근무하고 있는데 저희 환경은 aws의 ec2에 직접 올려백엔드 서버(spring-boot)를 운영하고 있습니다. 점차 쿠버네티스 환경으로 변경하려고인프라담당자들과 백엔드 개발자들이 스터디 및 환경 구축하고 있는데요. 만약 실무에서쿠버네티스 환경으로 바뀐다면 개발자들의 로컬 개발 환경은 어떻게 하시는지 궁금합니다.대부분 자바, 스프링 환경이면 인텔리제이등으로 개발 후 테스트를 해볼텐데 컨테이너에서 다른 개발자들과 다 같은 환경에서 테스트를 해보고 빌드해보고 해야 하지 않는가 싶어서요. 실무에선어떤식으로 개발자들이 개발하는지 개발, 테스트 , 운영 배포 까지 플로우가 어떻게 되는지 궁금합니다.