묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
하나의 가상서버에 테스트 서버와 운영 서버를 관리하는 방법
보통 운영 서버와 테스트 서버를 관리할 때, 실무에서는 어떤 방식으로 관리하는지 궁금합니다! 저도 팀 프로젝트를 하면서 테스트 서버와 운영 서버를 분리시켜서 CI/CD를 구축하고 싶은데 어떤 방법이 맞는건지 잘 모르겠어서요! 두 개의 EC2를 사용하는건 너무 부담되는데 그럼 하나의 EC2에서 컨테이너 2개(테스트용, 배포용)를 각각 운영하는 방법이 맞는걸까요?
-
해결됨개발자를 위한 쉬운 도커
github actions 의 steps 중 platforms 제거
안녕하세요. GitHub Actions 관련 실습 중이었는데, 아래와 같은 에러가 발생했습니다. ERROR: failed to solve: node:14: no match for platform in manifest: not found154Error: buildx failed with: ERROR: failed to solve: node:14: no match for platform in manifest: not found 일단은 platforms 를 제거해서 해결했는데요.platforms 관련하여 검색해 알아보니 특정 OS 에 최적화하는 옵셔널한 값으로 넣으면 좋고 안넣어도 괜찮은 그냥 그런 것으로 소개되고 있더라고요 제 질문은 아래와 같은데요. platforms 를 지워서 GitHub Actions 가 성공했는데, 이렇게 실습해도 되나요?실무에서는 보통 platforms 를 작성하는게 관행인가요?
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
도커를 설명한기 위한 이미지에 관한 질문입니다
안녕하세요. 도커에 최근 관심을 가지고 거의 처음 접하는 수강생입니다. 방금 도커에 대한 오해와 정정 강의를 들었는데 강사님께서 들의셨던 강의의 강사님께서는 왜 os시스템이 없다고 하신 걸 까요? 그 강사님이 잘모르시는 부분이신걸까요? 그리고 왜 도커 홈페이지에서도 유저 스페이스를 빼고 이미지를 첨부/설명 하고 있을까요? 그냥 저희가 없다고 생각해야 이해하기 쉬워서 그런 것일까요? 아님 다른 이유가 있는건가요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너 .exe 실행파일 사용 문의
안녕하세요,수업을 듣고 있는 수강생입니다. 컨테이너 학습 하면서, 의문점이 생겨 질의드립니다. HostPC에서 exe를 cp하여 컨테이너로 넣은 후, 해당 exe 파일을 컨테이너에서 실행시킬 수 있나요? 찾아보니 이미지는 마이크로소프트에서 받아오면 되더라구요. 환경은 HostPC는 window이고, 컨테이너도 window로 세팅하고 싶습니다. 만약 exe를 실행시킬 수 있다면 복수의 컨테이너를 실행시키고 싶은데 이를 docker compose로 구성하는게 효율적일까요?이론만으론 가능 할 것 같아 실습해보던 중 cp부터 에러가 발생해 가능성 여부를 알고싶습니다. 감사합니다.
-
해결됨개발자를 위한 쉬운 도커
도커 볼륨 경로 지정
각 서비스들 마다 볼륨을 지정하는 경로가 정해져 있나요?강의에서는 postgresql을 사용했고 /var/lib/postgresql/data 를 볼륨위치로 지정한것은 해당 위치가 table 내용을 저장하는 위치라서 그런건가요? 그럼 mysql 이나 redis등 다른 db의 경우는 각각 경로가 지정되어있는건지 궁금합니다. 그리고 어느 경로로 지정할지는 어떻게 알 수 있나요?
-
해결됨개발자를 위한 쉬운 도커
멀티 스테이지 빌드 COPY 명령어 질문
멀티 스테이지 빌드 강의에서 사용된 Dockerfile.multistage에 관한 질문입니다!두 번째 스테이지(openjdk:11-jre-slim)에서 사용된COPY --from=build /app/target/*.jar ./app.jar에서 해당 명령어를COPY --from=build /app/target/*.jar ./라고 작성하면 안되는건가요? COPY 명령어는 로컬 컴퓨터에 있는 파일을 도커 컨테이너 내부 파일 시스템에 복사하는 명령어로 알고 있고, 명령어에 입력되는 값은 복사에 필요한 디렉토리를 설정하는 것으로 알고 있습니다. 1) 도커 컨테이너의 루트 디렉토리에 app.jar 파일을 복사하는 용도라면 위와 같이 작성해도 되는게 아닌지 궁금합니다!2) 또한 COPY 명령어의 처음 값으로 나오는 /app/target/*.jar에서 *.jar가 .jar로 끝나는 모든 파일을 지칭하는 것인지 궁금합니다! Maven으로 빌드시 생성되는 결과물이 여러개여서 그런건가요?
-
해결됨개발자를 위한 쉬운 도커
여러 개의 컨테이너가 1개의 도커 볼륨에 접근할 때 일관성 문제
여러 개의 컨테이너가 하나의 볼륨을 공유할 수 있다는 특징에 따라 다음과 같이 작성했습니다. 도커 볼륨 생성docker volume create myvolume컨테이너A 생성docker run -d --name my-containerA -e POSTGRES_PASSWORD=password -v myvolume:/var/lib/postgresql/data postgres:13컨테이너B 생성docker run -d --name my-containerB -e POSTGRES_PASSWORD=password -v myvolume:/var/lib/postgresql/data postgres:13컨테이너A에서 새로운 DB 생성docker exec -it my-containerA psql -U postgres -c "CREATE DATABASE mydb;"컨테이너A에서 DB 조회docker exec -it my-containerA psql -U postgres -c "\list"컨테이너A에서 DB를 생성하고 조회하면 정상적으로 조회가 되는데, 컨테이너B에서 DB를 조회하면 mydb가 생성되지 않은 채로 보이네요.일관성 유지를 위해 두 컨테이너에서 정상적으로 조회가 될 줄 알았는데 컨테이너B에는 새로운 DB를 생성한 게 동기화가 안되네요..근데 새로운 컨테이너C를 생성하여 DB를 조회하면 정상적으로 조회가 됩니다. 위 내용을 정리하면 여러 개의 컨테이너가 1개의 도커 볼륨에 동시에 마운트하여 사용하면 동기화가 되지 않고, 새로운 컨테이너를 생성하여 도커 볼륨에 마운트하면 정상적으로 동기화가 됩니다.이런 경우에는 어떻게 해결하나요?
-
해결됨개발자를 위한 쉬운 도커
USER 명령어 질문
도커파일에서 USER 명령어가 RUN과 CMD 사이에 와야하는 이유가 무엇인가요? 그리고 USER 명령어가 사용되는 이유에 대해 잘 이해가 가질 않아서 그런데 리눅스의 어떤 개념을 공부해야 하나요?
-
미해결개발자를 위한 쉬운 도커
CMD 부분에 질문이 있습니다.
CMD ["nginx" "-g" "daemon off;"] 이 부분이 잘 이해가 안가서 찾아보니foreground로 실행되게 변경하는것, 초기 프로세스가 종료되지 않고 컨테이너가 계속 실행된다.로 나와있던데이게 잘 와닿지가 않습니다.. 우선 저 명령어는 생성한 nginx 컨테이너에서 실행되는거라고 이해했는데foreground로 실행된다는게 정확히 어떤 뜻인가요?컨테이너도 도커가 켜져있고 안건드리면 계속 돌아가지 않나요?
-
해결됨개발자를 위한 쉬운 도커
Dockerfile과 docker-compose.yml 파일
안녕하세요docker-compose.yml를 사용할 때사용자가 애플리케이션에서 변경한 내용을 다시 build 해야되는 경우가 아니면dockerfile은 없어도 되는 게 맞는걸까요??
-
해결됨개발자를 위한 쉬운 도커
스프링 빌드관련 질문드립니다
"EC2에서 스프링 도커로 배포하기"를 검색어로 구글링을 해보면 거의 모든 블로그들에서FROM amazoncorretto:17 ARG JAR_FILE=./build/libs/YOURAPP-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]이와같은 방식으로 도커파일을 작성하던데, 이는 잘못된 도커파일 사용인가요? 저의 가설 1 : 로컬에서 openjdk 17버전으로 빌드후 ec2에 푸시, ec2에서 해당도커파일 실행 -> 자바 버전차이로 잠재적 버그 가능성 -> 잘못된 사용 가설 2: ci/cd 머신에서 동일하게 amazoncorretto:17를 사용해서 자바 gradle를 빌드, 빌드머신에서 도커이미지 생성, ec2에서는 도커이미지만 pull-> 빌드스테이지를 나눌필요없음 -> 의도한 사용
-
해결됨개발자를 위한 쉬운 도커
강의 내용중 8분 28초에 보이는 IntelliJ 화면이 다른 것 같습니다.
안녕하세요 제 PC의 경우 Launch Docker Before Debug 화면이 나오지 않는데요 혹시 추가로 설정할 부분이 있을까요?
-
해결됨개발자를 위한 쉬운 도커
안녕하세요! 강의 자료 관련 문의드립니다...!!
안녕하세요 도커 강의 처음부터 듣고있는데, 들으면서 개인적으로 정리를 해놓고 싶은데 혹시 나온 내용들이나 사진들을 개인 블로그에 필요한 내용들을 작성해 놓고 싶은데 가능할까요...??
-
해결됨개발자를 위한 쉬운 도커
도커파일 피드백..
이런 질문을 드려도 괜찮을지 모르겠습니다.. (혹시 좀 아니라고 생각하신다면 답변을 안 남겨주셔도 괜찮습니다!)다름이 아니라, 제가 다른 프로젝트에서 진행했던 Spring을 docker로 실행시키기 위해서 혼자 해보고 있었는데요Spring은 Spring Boot 3.1.5와 gradle, java17 로 이루어져 있습니다(높은 버전의 gradle 이미지를 사용하다보니 강의에서의 Dockerfile과 많이 달라졌습니다.)FROM gradle:8.2.1-jdk17 AS builder WORKDIR /app COPY . /app RUN gradle wrapper --gradle-version 8.2.1 RUN ./gradlew build FROM openjdk:17-jdk-alpine COPY --from=builder /app/build/libs/*.jar /app/app.jar ENTRYPOINT ["java"] CMD ["-jar","/app/app.jar"]이렇게 작성해서docker build -t [이미지명] . --platform linux/x86_64 해당 명령어를 사용해서 이미지를 생성하고 후에 실행까지 성공했습니다. 다만, 이 Dockerfile은 cache를 잘 활용하지 못한다는 단점이 있습니다.하지만, 제 주변에 docker를 좀 해 본 친구들은 빌드 스테이지에서도 openjdk:17-alpine을 사용해서 빌드를 진행하고, cache를 적극적으로 활용하지 않아서 물어보기가 애매했습니다.. ㅜㅜ 그래서 제가 여쭤보고 싶은 부분은1. 강의가 비교적 최근 강의임에도 gradle 이미지 버전이 7.6.12을 사용하시면서 강의를 진행했던 것으로 기억하고 있습니다. 그렇다면, gradle의 버전은 크게 상관이 없는걸까요?2. 제가 이 글에 적은 Dockerfile에 대한 피드백을 조심스럽게.. 부탁드립니다..
-
해결됨개발자를 위한 쉬운 도커
빌드과정에서 USER 부분이 궁금합니다.
강의중해당부분에서 명령을 실행할 사용자를 변경한다고 하셨는데 그러면 궁금한게 해당 사용자에대한 생성과 권한 부여같은것들은 어디에서 진행이 되는것일까요??
-
해결됨개발자를 위한 쉬운 도커
cmd와 run에 대해서 궁금한점이있습니다.!
1.RUN 명령어 실행(새로운 레이어 추가)CMD["명령어"]컨테이너 실행시 명령어 지정두개의 차이점이 이렇다고 하셨는데 어차피 컨테이너를 실행하는과정에서 처음에 실행되는것은 같은것같은데 차이점이:CMD는 이미지당 1개 RUN은 여러개가 가능하며레이어의 관점에서 CMD는 추가가 안되고 RUN의경우 레이어에 추가가되는 차이가 있는걸까요??2.그리고 해당 부분에서 docker run 실행명령을 통해서 적히는 부분은 CMD로만 적히고 컨테이너가 실행이 되고나서부터 실행하는것이 run으로 기록이 된다 라고 이해하면될까요?
-
해결됨개발자를 위한 쉬운 도커
docker hub push 불가능
안녕하세요, 수강생 입니다!우선 유익한 강의 해주셔서 감사합니다.docker hub 계정으로 로그인하고 push를 했는데 denied 되었어요 ㅠㅠ왜 그런걸까요?
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
Dev-Container에서 GPU 활용하기
제가 강의를 따라서 실행하고 있는데, 가상 환경의 dev container에서 GPU가 잡히지 않네요. tunnel로 접속해서 nvidia-smi를 실행하면 GPU가 나오는데, dev container로 들어가면 nvidia-smi 자체가 실행되지 않습니다. 그리고 설정 파일에는 "--gpus-all" 혹은 ["--gpus", "all"]을 추가 했습니다. 이 부분을 좀 더 설명해 주실 수 있으실까요?
-
미해결실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
애져서비스에서 Quota늘리기
안녕하세요. 강의를 따라 애져에 계정을 만들고 GPU 가상 머신을 만들려고 했습니다. 그런데 Quota가 모자르다고 나오면서 진행이 안되고 있습니다. 강의를 보면 Quota를 늘리는 것에 대한 내용이 간단하게 나오는데요, 이부분에 대해 좀 더 설명해 주실 수 있으신가요? 참고로 저는 East US 2 Region을 사용하고 있고 현재 3개의 vCPU를 사용할 수 있다고 나옵니다.
-
해결됨개발자를 위한 쉬운 도커
안녕하세요 docker run 관련 질문드립니다!
안녕하세요! 강의 항상 잘듣고 있습니다.Dockerfile 지시어 강의를 수강 중에 node.js로 된 프로젝트를 Dockfile을 작성해서 이미지를 빌드하는 중에 이런식으로 run 명령어를 통해 이미지를 실행시켜도 ps로 확인해보면 올라가 있지 않습니다. 제가 어느 부분을 놓치고 있는지 궁금합니다.