해당 강의를 듣고 우분투 서버에서 jar 를 백그라운드로 운영하던것을 도커 컨테이너로 전환해보고 있습니다. 근데 우분투 서버에 파일을 전송해주는 ftp 서버와 같은 경우는 실무에서 도커 컨테이너로 운영하지않고 우분투 서버에 바로 설치하시죠? 정리하면 jar 와 같은 was 서버는 도커 컨테이너로 운영하고 우분투 서버에 파일을 옮기기 위한 ftp 서버같은 경우 도커 컨테이너가 아닌 우분투 서버에 바로 설치하시는지 궁금합니다.
[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기 강의에서 .dockerignore 에 node_modules 를 지정해주었는데 컨테이너 내부에 node_modules 가 들어가져있습니다. 영상에서 강사님 컨테이너에도 node_modules 가 있는데 맞는건가요? - 추가 .dockerignore 에 README.md 파일을 지정하고 빌드하니 README.md 는 제외된 것 같습니다. node_modules 는 파일이 아니라 디렉토리라 / 를 붙여줘야하는 걸까요? 아! 생각해보니 node_modules 는 COPY 한게 아니라 npm install 의 결과물이군요!
윈도우 환경으로 실습하고 계시는 분 중 저처럼 삽질 안하셨으면 하는 마음에 글을 남깁니다... ㅠ 저는 강사님과 동일하게 명령어를 수행했고, 관리자 환경임에도 불구하고 디렉토리만 만들어지며 내부의 내용물을 텅빈 상태였습니다. 이때 아래와 같이 "" 붙여주시면 잘 적용이 됩니다. docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v "호스트주소:/var/lib/mysql" -d mysql
개인적으로 실습을 해보고 있는 과정에서 아무리 해도 해결책을 모르는 것을 물어보고 싶어서 남겨봅니다. multistagebuild 하기전에 singlestagebuild를 하려고 하는 상황입니다. # 빌드 환경 설정 FROM gradle:7.6-jdk17 # 작업 디렉토리 설정 WORKDIR /app # Gradle 빌드 파일과 소스 코드 복사 COPY build.gradle settings.gradle . COPY src ./src # Gradle을 사용하여 애플리케이션 빌드 RUN gradle clean build --no-daemon # 빌드된 JAR 파일을 실행 환경으로 복사 RUN cp build/libs/*.jar app.jar # 빌드된 JAR 파일 실행 EXPOSE 8080 CMD ["java", "-jar", "app.jar"] 이렇게 입력을 하면 RUN cp 과정에서 " /bin/sh -c cp build/libs/*.jar app.jar" did not complete successfully: exit code: 1 " 결과가 나옵니다. (RUN cp /app/build/libs/*.jar /app/app.jar 로 해도 결과가 똑같이 나옵니다...) 하지만 RUN cp -> COPY로 수정하면 성공합니다. 이유에 대해서 물어봐도 될까요? 아무리 구글링을 해도 답을 찾기가 힘듭니다.. 또한 RUN cp로 빌드에 성공하려면 어떻게 작성해야 할까요?
자신이 직접 만든 이미지를 build 하면 docker image ls 에 뜨고 이를 docker run -d my-jdk17-server 명령어로 실행시킨다 까지 이해했습니다. 컨테이너가 내부적으로 필요한 명령어를 다 수행하면 컨네이너가 저절로 종료 된다고 하신 부분이 이해가 가지 않습니다. 이전에 mysql 실행할 때는 동일하게 run 명령어를 실행시키면 Up(실행)이 되었는데, 1) 왜 직접 만든 이미지는 실행되지 않나요? 2) mysql은 Dockerfile에 실행시키는 것까지 포함된건가요?
안녕하세요! 강의 정말 잘 들었습니다. 강의를 듣고 나서 혼자 프로젝트에 적용해 보던 중, 몇 가지 궁금한 점이 생겨 질문드립니다. 강의에서는 Docker Compose를 활용하여 세 개의 컨테이너를 하나의 컴포즈 파일로 묶고, 동일한 네트워크를 사용하여 API를 주고받는 방식을 설명해 주셨습니다. 이를 참고하여 직접 간단한 프로젝트를 만들어 실습해 보았는데, DB 연결에는 문제가 없었지만 프론트엔드와 백엔드 간의 통신에서 CORS 문제가 발생했습니다. 혹시 LEAFT 프로젝트에서는 CORS 문제를 어떤 방식으로 해결했는지 궁금합니다. 또한, AWS에 배포할 경우 Docker Compose로 프론트엔드와 백엔드를 하나로 묶어 한 번에 배포하는 것이 일반적인지, 아니면 각각 별도로 배포하는 것이 더 일반적인지도 궁금합니다. 다시 한번 좋은 강의 해주셔서 감사합니다!
안녕하세요. 도커 데스크탑 설치가 회사 컴퓨터로 설치하다보니 유료버젼만 가능한 상태인데 혹시 다른 방법에 대해 설명 해주실 수 있으실까요? https://hackerpark.tistory.com/entry/Windows-%EB%8B%A8%EC%9D%BC-%EB%AA%85%EB%A0%B9-%ED%95%9C%EC%A4%84%EB%A1%9C-WSL2-Ubuntu-%ED%86%B5%ED%95%A9-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 https://hackerpark.tistory.com/entry/Docker-Windows-WSL%EC%97%90%EC%84%9C-Docker-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-Docker-Desktop-%EC%95%84%EB%8B%98 위 링크와 같은 글들을 봤는데 맞는지 모르겠습니다. 우선 설치해서 해보았는데 도커의 버전은 확인가능 하나(docker --version) 도커 실행이 되지 않습니다. docker is not running cannot connect to the docker daemon at unix:///var/run/docker.sock. is the docker daemon running? 위와 같이 나오는 상황입니다.
안녕하세요 강의 재밌게 듣고 있습니다. 멀티 스테이지 빌드 강의 부분 7분42초 경에 대해 궁금한 점이 있습니다. 멀티 스테이지 빌드는 빌드 스테이지 따로, 빌드한 아티팩트 실행 스테이지 따로 이렇게 진행되는 것으로 알고 있는데요 여기서 첫 번째 스테이지에서 FROM maven AS build 이렇게 주고 --from 으로 가져올 때 빌드 컨텍스트에서 가져오지 않고 스테이지에서 가져온다고 하였는데 여기서 스테이지가 이해가 가지 않는데 첫 번째 빌드 스테이지가 실행되고 난 뒤 해당 이미지 디렉토리에서 파일을 가져온다는 뜻인가요.?
강사님 안녕하세요:) 강의 잘 듣고 있으며 docker에 대해 쉽고 친절하게 알려주셔서 감사합니다. 질문을 한개 드립니다. '[실습] AWS ECR 사용해보기' 강의를 들으면서 aws ecr get-login-password로 시작하는 명령어를 사용해 로그인을 시도했습니다. 그런데 아래와 같은 에러가 표출되었습니다. Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> BrokenPipeError: [Errno 32] Broken pipe [1] 69874 exit 120 aws ecr get-login-password --region ap-northeast-2 | 69875 killed docker login --username AWS --password-stdin 이것은 어떻게 해결할 수 있을까요~?
안녕하세요. 컨테이너 가상화에서 OS 관련하여 질문이 있습니다. 아래 설명에서 궁금한점이 있습니다. """ 하이퍼바이저 가상화는 게스트OS와 호스트OS가 따로 존재합니다. 컨테이너 가상화는 리눅스 커널 기술을 활용해서 프로세스 간 격리를 합니다. 컨테이너 가상화에서 컨테이너는 호스트OS를 사용합니다. 이미지 개발자는 소프트웨어, 의존성 파일, OS를 준비해 이미지로 만듭니다. """ 이미지에 OS가 있다면 호스트OS와 게스트OS 개념이 들어가는거 아닌가 싶어서요 그러면 하이퍼바이저 가상화가 아닌가 싶어서요... 사용자 환경이 windows or ubuntu고 이미지에 사용하고 있는 os는 linux or centos라고 가정할때 해당 이미지를 실행하면 다른 os를 가지는거 아닌가 싶습니다. 추가로 "이미지의 이름을 동료나 친구에게 전달해 주시면 어떤 환경에서든 도커만 설치되어 있으면 완벽하게 일치하는 서버를 구성할 수 있습니다." 해당 작동이 어떻게 될 수 있는지도 궁금합니다. 제 windows 환경에서 도커이미지를 만들어 배포를 합니다. linux를 사용하고 있는 동료가 해당 이미지를 사용하게 되었을때 어떻게 완벽하게 일치하는 서버를 구성할 수 있는지도 궁금하고요.
안녕하세요. 선생님 오늘도 공부하다 궁금증이 생겨 질문 드립니다. services: my-web-server: container_name: webserver image: nginx ports: - 80:80 여기서 선생님이 나눠주신 자료랑 강의를 보면 하나의 서비스가 하나의 컨테이너라고 설명해주셨습니다. 그러면 my-web-server는 서비스 이름이니까 컨테이너 이름도 맞는 설명인가 같은데 아래 보면 container_name: webserver 도 하나의 컨테이너 이름으로 설명하셨습니다. 이 my-web-server와 webserver 차이점이 무엇인지 궁금하고 어느 곳에서 쓰이는지 활용사례(?)도 궁금합니다!!
Dockerfile에서 베이스 이미지를 작성할 때 openjdk 이미지를 바탕으로 컨테이너를 실행하면 어느 환경으로 구성되어 있나요 ? 베이스 이미지를 ubuntu 이미지로 지정하면 컨테이너 생성 시 우분투 환경으로 설정이 되어 있는것 같은데 혹시 생각한 것이 맞는지도 궁금합니다 !!
안녕하세요. 강의를 듣던 중 섹션 2의 "컨테이너 가상화, 도커, 컨테이너 실행" 이렇게 총 3개 강의의 강의 화면이 나오지 않고 음성만 나옵니다. 세션 문제인가 싶어 시크릿모드로 진행했는데도 동일한 현상이 발생하네요. 저는 현재 맥북을 사용하고 있고, 휴대폰 앱으로 실행했을 때는 잘 되는데 노트북에서 크롬으로 실행하니 화면이 안나오네요.. 혹시 이에 대해서 해결 방법이 있으면 알려주시면 감사하겠습니다!