묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 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번 방법으로 실행할 수 밖에 없는건지 궁금합니다.. ㅠㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Access denied for user 'root'@'localhost' (using password: YES)
https://www.inflearn.com/community/questions/1364596/access-denied-for-user-root-localhost-using-password-yes위 글에서 재성님이 제시해주신 해결방법을 적용해보았습니다. 하지만 여전히 root 계정에 접속이 안됩니다. docker compose down -v 명령어를 통해 볼륨을 제거해도 여전히 해결이 안됩니다. 스프링부트 역시 데이터베이스와 연결되지 않았다는 오류가 로그에 남습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
Docker compose 관련 질문입니다
안녕하세요 재성님! 좋은 강의 너무 잘 듣고 있습니다.다름이 아니라 재성님 강의를 듣고 제 프로젝트에 spring boot mysql 을 함께 컴포즈 파일로 작성하고 있는데localhost:8080으로 접속하org.springframework.web.servlet.resource.NoResourceFoundException: No static resource .이라는 에러 문구가 나옵니다.현재 프로젝트에서는.html 파일을 전혀 사용하지 않아서 이 에러의 원인을 잘 못찾고 있습니다.docker-compose 파일 첨부합니다.감사합니다.services: my-server: build: . ports: - 8080:8080 # my-db의 컨테이너가 생성되고 healthy 하다고 판단 될 때, 해당 컨테이너를 생성한다. depends_on: my-db: condition: service_healthy my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: 저희 비밀번호 MYSQL_DATABASE: mydb # MySQL 최초 실행 시 mydb라는 데이터베이스를 생성해준다. volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: [ "CMD", "mysqladmin", "ping" ] # MySQL이 healthy(정상 작동 하는지)한 지 판단할 수 있는 명령어 interval: 5s # 5초 간격으로 체크 retries: 10 # 10번까지 재시도
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Access denied for user ‘root’@’localhost’ (using password:YES)
compose.ymlservices:instagram-server:image: 420787877062.dkr.ecr.ap-northeast-2.amazonaws.com/instargram-serverports:- 8080:8080depends_on:my-db:condition: service_healthymy-cache-server:condition: service_healthymy-db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: 00000000MYSQL_DATABASE: mydbvolumes:- ./mysql_data:/var/lib/mysqlports:- 3306:3306healthcheck:test: [ "CMD", "mysqladmin", "ping" ]interval: 5sretries: 10my-cache-server:image: redisports:- 6379:6379healthcheck:test: [ "CMD", "redis-cli", "ping" ]interval: 5sretries: 10 이렇게 yml을 설정하고docker inspect 명령어를 사용하여 mysql 정보를 gpt 한테 물어봤더니 아래와 같은 답변이 있었습니다. 현재 MySQL 컨테이너의 상태는 “healthy”로 보이며, 전체적으로 Docker Compose 설정이 잘 작동하고 있다. 하지만 MySQL의 Healthcheck가 Access denied for user 'root'@'localhost' (using password: YES) 오류 메시지를 출력하고 있다. 이는 MySQL이 root 사용자로 접속을 시도할 때 비밀번호 인증에 실패했다는 것을 의미한다. 이를 해결하기 위해서, 비밀번호를 ' 로 감싸서 String으로 인식하도록 유도 하기도 했지만 여전히 문제는 해결되지 않고 있습니다. 구글링을 해본 결과 도커 볼륨과 연관있는 것 같지만 정확한 이유를 모르겠습니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
스프링부트,Mysql작업시 빌드
안녕하세요 강의 듣다 궁금한 점이 생겨서 질문 남깁니다! 스프링 부트,mysql 을 이용하여 프로젝트 작업 진행하기 위해 작업 진행전 docker로 초기 환경 세팅을 하고 두가지 동시에 띄우는 작업을 했습니다! 도커 연결전에는 IDE에서 run버튼을 눌러 작업 확인을 했었는데, 지금은 빌드 하고, compose up해서 확인을 해야하는걸까요? run버튼 누르니까 에러가 뜹니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker에서 mysql 종료하니까 workbench가이렇게 되는데
어떡하죠? ㅠ 들어갈때 원래 비밀번호가 root123이었는데 이번에 password123으로 바뀌고 스키마있던게 다 사라졌어요ㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
nginx가 하는일이 뭔지 궁금합니다
제가 react로 프론트서버만들고 node.js mongodb로 백엔드 서버 만드는건 해봤는데 이거면 충분한거 아닌가요? nginx수업은 아니지만 다른설명봤는데 이해하나도 안가서... 죄송합니다 이해가 잘 안가서 여쭤봅니다 ㅠㅠ
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
wsl 환경으로 작업중인데
docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -d -p 3306:3306 -v /mnt/c/Users/SSAFY/desktop/docker/docker-mysql/mysql_data:/var/lib/mysql mysql 명령어 실행시 2024-07-03T08:05:15.221312Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem2024-07-03T08:05:15.221336Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.이런 오류가 발생합니다. 권한부여 등 여러 방법을 시도했지만 모두 실패했고 wsl이 아닌 그냥 윈도우 터미널로 실행했을때는 정상 작동 하엿습니다 어떻게 해결할까요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
호스트경로/mysql_data경로 질문
안녕하세요mysql_data는 어떤 역할하고 있는지 궁금합니다.mysql_data를 없이 docker에 mysql를 넣었는데 실행이 중단되고 아래와 같은 오류가 나와서 이유를 알고싶습니다그리고 항상 docker에 mysql에 호스트 내부에 파일을 저장할때 새로운 my_data의 이름이 아니여도 다른 파일경로를 지정을 해줘야하는건가요?