묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기 import문제
현재 start.spring.io에서 의존성 두개 추가해서 generate 이후demo.zip파일을 받았는데 압축을 풀고 setting.gradle을 눌렸더니 밑의 그림과 같이 뜹니다.이게 압축을 푸는게 맞는건가요?혹시 몰라서 이클립스를 다운받고 이클립스에서 zip파일을 import시키고 appcontroller생성 후 @Restconrollerimport하는 부분에서 어노테이션을 못찾습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커 컨테이너로 서버 운용시 질문
해당 강의를 듣고 우분투 서버에서 jar 를 백그라운드로 운영하던것을도커 컨테이너로 전환해보고 있습니다. 근데 우분투 서버에 파일을 전송해주는 ftp 서버와 같은 경우는 실무에서 도커 컨테이너로 운영하지않고 우분투 서버에 바로 설치하시죠? 정리하면jar 와 같은 was 서버는 도커 컨테이너로 운영하고우분투 서버에 파일을 옮기기 위한 ftp 서버같은 경우 도커 컨테이너가 아닌 우분투 서버에 바로 설치하시는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
.dockerignore
[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기 강의에서.dockerignore에 node_modules를 지정해주었는데 컨테이너 내부에 node_modules가 들어가져있습니다.영상에서 강사님 컨테이너에도 node_modules가 있는데 맞는건가요?- 추가.dockerignore에 README.md 파일을 지정하고 빌드하니 README.md는 제외된 것 같습니다. node_modules는 파일이 아니라 디렉토리라 /를 붙여줘야하는 걸까요?아! 생각해보니 node_modules는 COPY한게 아니라 npm install의 결과물이군요!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
윈도우 볼륨 생성 안되는 문제
윈도우 환경으로 실습하고 계시는 분 중 저처럼 삽질 안하셨으면 하는 마음에 글을 남깁니다... ㅠ저는 강사님과 동일하게 명령어를 수행했고, 관리자 환경임에도 불구하고 디렉토리만 만들어지며 내부의 내용물을 텅빈 상태였습니다. 이때 아래와 같이 "" 붙여주시면 잘 적용이 됩니다.docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v "호스트주소:/var/lib/mysql" -d mysql
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
윈도우에서 ENTRYPOINT /bin/bash 실행 안되는 분들 참고
FROM openjdk:17-jdk ENTRYPOINT ["//bin//bash", "-c", "sleep 500"]/를 두번 입력해주시고 build 후 run 하면 docker ps 했을 때 올바르게 Up 상태가 됩니다. [실패] [성공] ※질문글 아닙니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
다른 이미지와 달리 직접 만든 이미지를 run 시킬 때 저절로 컨네이너가 종료되는 이유
자신이 직접 만든 이미지를 build 하면 docker image ls에 뜨고 이를 docker run -d my-jdk17-server 명령어로 실행시킨다 까지 이해했습니다.컨테이너가 내부적으로 필요한 명령어를 다 수행하면 컨네이너가 저절로 종료 된다고 하신 부분이 이해가 가지 않습니다. 이전에 mysql 실행할 때는 동일하게 run 명령어를 실행시키면 Up(실행)이 되었는데, 1) 왜 직접 만든 이미지는 실행되지 않나요? 2) mysql은 Dockerfile에 실행시키는 것까지 포함된건가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
image 3개
aws에 image push하면 영상에서는 하나가 뜨는데 저는 3개가 뜨네요 이렇게 동작해도 맞는건가요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
aws ecr 명령어 실행중 에러가 발생하여 질문드립니다~!
강사님 안녕하세요:)강의 잘 듣고 있으며 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이것은 어떻게 해결할 수 있을까요~?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
서비스 이름 컨테이너 이름 차이 ??
안녕하세요. 선생님 오늘도 공부하다 궁금증이 생겨 질문 드립니다. services: my-web-server: container_name: webserver image: nginx ports: - 80:80 여기서 선생님이 나눠주신 자료랑 강의를 보면 하나의 서비스가 하나의 컨테이너라고 설명해주셨습니다. 그러면 my-web-server는 서비스 이름이니까 컨테이너 이름도 맞는 설명인가 같은데아래 보면 container_name: webserver 도 하나의 컨테이너 이름으로 설명하셨습니다. 이 my-web-server와 webserver 차이점이 무엇인지 궁금하고 어느 곳에서 쓰이는지 활용사례(?)도 궁금합니다!!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
지금까지 학습하면서 궁금한점이 있습니다.
Dockerfile에서 베이스 이미지를 작성할 때 openjdk 이미지를 바탕으로 컨테이너를 실행하면 어느 환경으로 구성되어 있나요 ? 베이스 이미지를 ubuntu 이미지로 지정하면 컨테이너 생성 시 우분투 환경으로 설정이 되어 있는것 같은데 혹시 생각한 것이 맞는지도 궁금합니다 !!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
컨테이너 개념
컨테이너는 하나의 컴퓨터 내에서 독립적인 환경으로 구성된 미니 컴퓨터라고 설명을 해주셨습니다. 그러면 하나의 컨테이너에는 하나의 프로그램만 운영할 수 있나요 ? 왜냐하면 각 컨테이너는 고유의 ip, port 번호를 할당받으니까 이러한 궁금증이 생기게 되었습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
만약 배포가 아니라 단순히 팀원들간 로컬 환경 구축이 목적이라면
DockerFile은 필요 없나요? 로컬 환경에서 모든 팀원들이 같은 버전의 기술들을 이용하여 개발을 진행하고 싶다고 가정하면docker-compose.yml만 작성하면 되는 게 맞을까요 ? ? 영상을 열심히 보긴 했는데.. 아직도 어렵네요 ㅠㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker image ls
안녕하세요! docker 강의 정말 잘 듣고 있습니다!처음에 docker pull nginx를 실행하고 docker image ls를 사용하여 현재 다운받은 이미지들을 조회하면 잘 나왔습니다! 하지만 이 세션을 다 듣고 복습을 하면서 docker pull nginx를 하면 다음과 같은 로고가 뜨고 docker image ls로 조회를 해도 나오지 않습니다.하지만 조회할땐 아무것도 나오지 않지만 docker create nginx를 하면 정상적으로 컨테이너가 생성이 됩니다... 무슨 이유인지 잘 모르겠습니다 ㅠㅠdocker run 명령어로 이미지를 다운과 동시에 컨테이너를 생성하고부터 이렇게 된거 같습니다. 현재 docker pull nginx를 하면 다음과 같은 로고가 뜹니다 Using default tag: latestlatest: Pulling from library/nginxDigest: sha256:fb197595ebe76b9c0c14ab68159fd3c08bd067ec62300583543f0ebda353b5beStatus: Image is up to date for nginx:latestdocker.io/library/nginx:latestWhat's next: View a summary of image vulnerabilities and recommendations → docker scout quickview nginx
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
마지막 docker compose up -d후 버퍼링이 심합니다.
저는 조이프로젝트를 진행 중이고, 초반에는 Redis, MySQL, Jasypt, 그리고 회원 CRUD 정도만 구현한 상태입니다. 현재 도커를 이용해 배포 중인데, 배포 과정에서 문제가 발생하고 있습니다.문제 발생:EC2에서 MySQL, Redis, Spring을 배포할 때, docker compose up을 실행하면 테스트와 체크는 정상적으로 이루어집니다.그러나 서버가 실제로 구동되지 않음.EC2 자체의 성능 문제가 발생하여, 로그 확인을 위해 docker logs를 실행하려 할 때 렉이 너무 심해집니다.상황:배포 과정에서 동시 올리기 작업을 마지막에 시도하고 있는데, 이때 EC2 성능 저하가 심해지고, CPU 사용량이 50% ~ 100% 사이로 왔다 갔다 하면서 렉이 발생합니다.의문점:프리티어 인스턴스의 1GB RAM, CPU 성능 문제 때문인지 의심됩니다.CPU 사용량이 높은 상태에서, 이러한 렉 현상을 해결하려면 어떻게 해야 할지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
윈도우 환경에서 실행하는데 보이지 않습니다.
안녕하세요 강사님 해당 강의 내용을 따라가는데 제 터미널 환경에서는 volume에 관한 정보를 확인할 수가 없습니다 컨테이너는 정상적으로 실행되고 이제 mysql_data도 생성되는데 안이 비어있더라고요..git bash, powershell, cmd 3개의 환경에서 해봣는데 문제를 해결할 수가 없었습니다...
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
JDBCConnectionException 가 납니다.
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2024-10-09T14:59:40.805Z WARN 1 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata org.hibernate.exception.JDBCConnectionException: unable to obtain isolated JDBC connection [Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] [n/a] at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:100) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]안녕하세요. 강사님. 늘 퀄리티 좋은 강의 감사드립니다. 섹션 6. Docker Compose를 활용해 2개 이상의 컨테이너 관리기에서 스프링부트와 MySQL을 동시에 띄워보는데 위와 같은 예외가 나서 문의드립니다.application.yml에서 url: jdbc:mysql://my-db:3306/mydb로 바꿔도 같은 상황입니다. 이후 계속 시도를 하다가, build.gradle에 있는 jpa관련 의존성을 빼고 도커를 올리니 성공하였습니다. 그리고 다시 도커를 내리고 jpa의존성을 다시 추가하고 도커를 올리니 이제는 redis까지 올려서 운용 중입니다. 하지만 원인이 궁금하여 이렇게 문의 남깁니다. 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
인바운드 보안 그룹 규칙
안녕하세요. 항상 감사합니다. 다름아니라 프론트엔드 개발자(ionic+react+typescript)님과 처음 협업을 하는데요!(레포지토리가 fe, be 따로 존재합니다.)api를 개발해서 전달해드려야 하는데 프론트엔드 개발자님께서 springboot를 로컬에서 실행하시기 어려우실것 같아 제가 일단 배포를 하여 전달드리려고 합니다.(EC2에서 Docker를 활용한 배포 방법을 사용하려합니다.)질문: 1. 이때 ec2 인바운드 보안 그룹 규칙은 ssh, http(80)만 해주면 될까요? tcp(프론트엔드 개발자님의 포트(아마도 8100번))또한 추가해야 하는 부분일까요?2. Nginx, Certbot를 활용해 리버스 프록시를 설정한다면 해당 포트번호도 ec2 인바운드 보안 그룹에 tcp로 추가해야 할까요?3. 백엔드 개발자는 프론트엔드 개발자에게 api를 제공할때 위에 말씀드린 방식으로 진행하는지 여쭙고 싶습니다. 경험이 부족하여 질문이 이상할 수 있는점 양해바랍니다.감사합니다.+추가)일단 docker compose로 ec2에서 빌드까지 했는데요.보안그룹을 모든tcp 0.0.0.0에서 하니깐 잘 돌아갑니다. 하지만 모든tcp를 제거하고 http 80과 https 433을 추가하면 "ERR_CONNECTION_REFUSED"라고 하고 접근이 안되네요. 여기서 http 8080을 추가하면 또 잘되네요. 프로젝트를 할때 모든 tcp로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
Spring Web 의존성을 추가했는데도 intelliJ에서 @RestController 인식이 안 됩니다
안녕하세요'[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기'에서 그대로 따라 했는데이렇게 RestController가 인식이 안 됩니다build.gradle이고 이걸 다시 run했는데 동일합니다 아래는 run 후 콘솔에 찍히는 내용입니다확인 후 답변 부탁드립니다!오후 4:51:31: Executing... > Task :help Welcome to Gradle 8.10.1. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see more detail about a task, run gradle help --task <task> To see a list of command-line options, run gradle --help For more detail on using Gradle, see https://docs.gradle.org/8.10.1/userguide/command_line_interface.html For troubleshooting, visit https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 451ms 1 actionable task: 1 executed 오후 4:51:32: Execution finished.시키기
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
workdir 대신에 RUN mkdir /directory COPY 상대경로 /directory/복사할파일 이런식으로 구현해도 되나요 ?
둘 중 뭐가 보편적으로 사용되는 편인지 궁금합니다! 1번 사안WORKDIR /directory 2번 사안 RUN mkdir /directoryCOPY [복사할 파일의 상대경로] [/directory/복사할 파일]
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
mysql 비밀번호 바꾸기 위해 호스트 저장공간을 지우면 기존의 데이터도 날라가는 게 아닌가요 ?
[실습] Docker로 MySQL 실행시켜보기 - 3 에서 마지막쯤에 비밀번호 바꾸기 위해서기존의 비밀번호로 mysql 접속 후 비밀번호 바꾸기호스트 저장 공간에서 파일들 삭제하기 둘 중 하나를 선택하여 비밀번호 바꿀 수 있다고 하셨습니다! 근데 고민되는 부분이 호스트 저장 공간에서 파일들 삭제해서 새로운 비밀번호로 덮어씌우게 된다면 이건 볼륨의 역할을 활용하지 못한 경우가 아닌가 하는 생각이 들어서요.. 결국 볼륨이란건 호스트 저장 공간의 파일 = 컨테이너 내부의 저장 공간 파일이 동기화되어야 하는 건데 호스트 저장 공간 파일 지우고 새롭게 만드는 거면결국 컨테이너 삭제 생성하는 것과 다를 게 없지 않나요?? 그럼 결국 볼륨의 특성을 살리면서 mysql의 비밀번호를 변경하려면 1번 방법으로 실행할 수 밖에 없는건지 궁금합니다.. ㅠㅠ