묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
application.yml 변경 후 ecr push 시 변경내역 업데이트
스프링부트 기본 포트인 8080에서 80으로 변경하고 싶어. application.yml 설정에서 port:80 변경 후 다시 push 하였는데요. .gradlew clean buildaws 로그인docker compose up -d --builddocker push "url" 그런데 이렇게 이미 존재한 이미지라고 뜹니다. 0e05aa91b84c: Layer already exists 빌드 시 .yml이 변경되면 .jar 파일도 변경되어 이미지가 새로 push되어야 하지 않나요?이 부분 때문에 며칠 고민 하고 있어서 질문드립니다...
-
해결됨개발자를 위한 쉬운 도커
빌드 방식에 대해 질문 있습니다.
빌드 방식 설명에서도커 파일을 작성해서 이미지 빌드 명령을 실행하면도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다.이렇게 그림으로 되어있는데,커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요?임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데,이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 설치 명령어 (해결 되었습니다. )
안녕하세요. 수업 자료에 있는 도커 설치 명령어를 복사 붙여넣기 했는데 설치가 안되고 command not found 라는 답만 나옵니다. 왜 이러는 걸까요? 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 컴포즈 질문있습니다.
안녕하세요.현재 Docker Compose를 활용하여 여러 개의 컨테이너를 다루는 강의를 수강 중입니다. 섹션 6, "Docker Compose를 활용해 2개 이상의 컨테이너 관리하기"의 마지막 파트를 듣고 있습니다.다름이 아니라, 강의를 따라 실습하던 중 궁금한 점이 생겨 이렇게 문의드립니다.현재 Docker 환경에는 DB와 Redis가 구성되어 있는데요,$ ./gradlew clean build$ docker compose down $ docker compose up --build -d위와 같은 순서로 명령어를 실행하였습니다.여기서 ./gradlew clean까지는 이해가 되지만, gradlew build를 실행하면 아직 DB가 연결되지 않은 상태에서 JAR 파일이 빌드되는 것이므로 오류가 발생해야 하는 게 아닌가 하는 의문이 들었습니다.그래서 오히려 docker compose up --build -d 명령어로 컨테이너를 먼저 실행시킨 다음에, ./gradlew clean build를 실행하는 것이 더 맞는 순서가 아닐까 하는 생각이 드는데요.혹시 이에 대해 설명해주실 수 있을까요?감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
window 환경에서 vi 명령어
안녕하세요. Window환경에서 PowerShell 사용해서 수업을 듣고있습니다 🙂 vi 명령어 대신 notepad empty.txt 이렇게 사용하고 있는데 혹시 다른 명령어를 쓰는게 좋을까요 ? 그리고 윈도우환경에서 PowerShelll 말고 리눅스 환경으로 실습할 수 있는 방법은 없나요 ... ?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
volume 생성 후 DB 조회 시 동일한 DB 없음
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=$(비밀번호) -d -p 3306:3306 -v C:\Users\SSAFY\Inflearn\docker-mysql\mysql_data:\var\lib\mysql mysql 0b272839d37a21ba514052f486d744988addbbfd898f88e4bbb77383c1a35d6c PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0b272839d37a mysql "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp unruffled_diffie PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it 0b2 bash bash-5.1# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 9.3.0 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 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.014 sec) mysql> create database mydb; Query OK, 1 row affected (0.024 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.001 sec) mysql> exit Bye bash-5.1# exit exit PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0b272839d37a mysql "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp unruffled_diffie PS C:\Users\SSAFY\Inflearn\docker-mysql> docker rm -f 0b2 0b2 PS C:\Users\SSAFY\Inflearn\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=$(비밀번호) -d -p 3306:3306 -v C:\Users\SSAFY\Inflearn\docker-mysql\mysql_data:\var\lib\mysql mysql e0dbe2fa08d4ba1dec0442afacf5290a4c6ecef265be723e489b5d08f1ec237f PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e0dbe2fa08d4 mysql "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp romantic_booth PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it e0d docker: 'docker exec' requires at least 2 arguments Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] See 'docker exec --help' for more information PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it e0d bash bash-5.1# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 9.3.0 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 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.014 sec)강사님과 동일하게 volume 생성 후 다른 컨테이너로 접속 시 mydb가 조회되지 않습니다... 원인이 무엇인지 궁금합니다.비밀번호는 암호화했습니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
compose 파일 작성문의
version: "3.8" services: mysql: image: mysql:5.7 volumes: - todo-mysql-data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: todos volumes: todo-mysql-data:compose 파일을 작성할 떄 위와 같이 작성하는것 같은데요. version: "3.8"은 cmd에서 docker --version해도 안나오는데 어떻게 아나요.?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
rds vs mysql
안녕하세요! 여기에서는 현재 mysql을 ec2환경에 적은 것 같은데 rds로 db환경을 구축하고 연결하는 방법과는 다른 것인가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 컨테이너 안에서 개발
제가 시간이 없어서 강의자료만 보고 공부해서 영상에서는 설명했을지도 모르지만 일단 질문드립니다. 스프링부트 실습 영상에선 프로젝트 개발은 호스트에서 하고, Dockerfile과 jar파일을 이용해서 실행하는데이 경우 개발한 호스트의 jdk와 Dockerfile에서 지정한 jdk 이미지가 서로 버전이 다르다거나 하면 문제가 생길 수 있을거같다는 생각이 들었습니다. 그래서 아예 프로젝트 개발을 jdk 이미지로 만든 컨테이너 내에서 하는게 좋겠다는 생각이 들었는데혹시 실무에서도 실제로 컨테이너 내에서 개발하는 방식을 사용하는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
ECR 푸시명령 login 400 Bad Request 에러
안녕하세요! 강의를 따라 학습중인데 ECR를 푸시 명령 1번째 복사해서 붙여넣고 실행하면 다음과 같은 에러 메시지가 발생합니다Error response from daemon: login attempt to https://(숫자).dkr.ecr.ap-northeast-2.amazonaws.com/v2/ failed with status: 400 Bad Request 해당 링크를 접속하면 로그인하라 발생하는데 AWS CLI로 액세스 키 등록도 정상 실행 완료되었는데 무엇이 문제인지 모르겠습니다
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
DOCKER로 MYSQL 실행하기 -3
윈도우 환경에서 wls을 이용하여 docker를 돌리고 있습니다. docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admin1234 -v /mnt/c/users/lucig/Downloads/docker-mysql/mydata:/var/lib/mysql mysql 2876a8df0041c8cfefdde95d874bf0d87182d3320a1ee8fa417b41128cd9925e위에처럼 컨테이너가 뜬 이후에 exec -it로 접속하려고하면 접속이 안되서 로그를 확인해보니 docker logs -f 2876 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started. 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started. 2025-04-17 06:16:10+00:00 [Note] [Entrypoint]: Initializing database files 2025-04-17T06:16:10.096316Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. 2025-04-17T06:16:10.097629Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 9.3.0) initializing of server in progress as process 80 2025-04-17T06:16:10.109461Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive 2025-04-17T06:16:10.127422Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-04-17T06:16:11.839040Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted) 2025-04-17T06:16:14.379413Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem 2025-04-17T06:16:14.379482Z 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. 2025-04-17T06:16:14.379504Z 0 [ERROR] [MY-010119] [Server] Aborting 2025-04-17T06:16:16.112226Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.이렇게 나오는데 가장 쉬운 방법은 어떤것이있을까요?클로드는 아래처럼 답변을 주더라고요 2. 도커 볼륨 사용 Windows 경로를 직접 마운트하는 대신 도커 볼륨을 사용하는 것이 더 안정적입니다: bash# 도커 볼륨 생성 docker volume create mysql-data # 볼륨을 사용하여 MySQL 컨테이너 실행 docker run -d -p 3306:3306 --name mysql \ -e MYSQL_ROOT_PASSWORD=admin1234 \ -v mysql-data:/var/lib/mysql \ mysql도커 볼륨을 사용해도 새로생성한 컨테이너가 데이터를 그대로 사용할 수 있는걸까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 볼륨을 사용할때 디렉토리 절대경로
안녕하세요 ! 강의 잘보고 있습니다.docker 볼륨을 호스트 컴퓨터에 저장할때 강사님은Documents/develop 라는 폴더 안에 저장하시는데 일반적으로는 어디에 도커 볼륨 폴더를 저장하는지가 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커는 어떤 실무 환경에서 쓰이나요?
안녕하세요! 좋은 강의 감사드립니다.덕분에 도커를 쉽게 배울 수 있었고, 실무에 어떻게 활용될 수 있을지 궁금증이 생겨 질문드립니다.도커는 협업 환경에서 자주 쓰이나요?저는 아직 협업에서 도커를 직접 사용해본 경험은 없는데,만약 실제 협업 중 도커를 활용하게 된다면,배포 시 에러가 발생했을 때 디버깅이 오히려 어려울 수도 있지 않을까? 하는 고민이 있습니다.그래서 실무에서는 어떤 상황에서 도커를 자주 사용하는지 궁금합니다.도커는 왜 MSA 환경에 적합하다는 이야기가 많을까요?찾아보니 도커가 MSA(Microservices Architecture)에 잘 맞는다는 자료들을 종종 보았는데요,아마도 MSA는 여러 개의 서비스를 따로 운영해야 하다 보니,각 서비스의 환경 셋팅이나 배포가 많아서 그런 걸까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Next.js 관련 질문
안녕하세요! Next.js 관련해서 3000번 포트는 이미 사용 중이라 3001번 포트가 사용 가능하다고 나오더라구요. PS C:\Users\USER\Documents\my-app> npm run dev> my-app@0.1.0 dev> next dev --turbopack⚠ Port 3000 is in use, using available port 3001 instead. ▲ Next.js 15.3.0 (Turbopack)- Local: http://localhost:3001이건 혹시 그 전에 실습한 node 때문인건가요? ps로 조회하면 "node dist/main.js"가 up 상태입니다! 3000번 포트로 next.js 확인하고 싶으면 node 삭제하고 다시 진행해보면 되나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
파일복사 윈도우환경 질문
PS C:\Temp\docker-practice> docker build -t my-server .[+] Building 1.7s (6/6) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 121B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 1.6s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build context 0.0s => => transferring context: 2B 0.0s => CANCELED [1/2] FROM docker.io/library/ubuntu:latest@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 0.0s => => resolve docker.io/library/ubuntu:latest@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 0.0s => ERROR [2/2] COPY app.txt /app.txt 0.0s------ > [2/2] COPY app.txt /app.txt:------Dockerfile:3-------------------- 1 | FROM ubuntu 2 | 3 | >>> COPY app.txt /app.txt 4 | 5 | ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] 이런 오류가 뜹니다.그래서 app.txt를 직접 파일에가서 만들면 안뜨긴하는데 맥이랑 환경이 달라서 그런걸까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
ENTRYPOINT 오류
안녕하세요.베이스 이미지 생성할 때 ENETRYPOINT 입력하여도 계속 종료상태로 선생님과 비교해보니 COMMAND 부분이 'jshell'로 나와서 확인했더니 이렇게 조회되었습니다."Entrypoint": null,Cmd": [ "jshell"시도FROM openjdk:17-jdk ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] CMD [ ]CMD [] 입력 후 RUN 실행되었는데,node 컨테이너 내부 들어가서 -v 입력 시 bash-4.4# node -vbash: node: command not found이렇게 조회가 됩니다.. (windows vscode로 하고 있습니다.)
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker hub 관련 질문(환경변수 관련)
안녕하세요. 볼륨 마지막 실습 강의 듣고 docker hub 관련해서 궁금한 점이 생겼습니다. 도커허브에서 mongo 설명이 아래처럼 적혀있는데, 실습 시 MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD 입력을 하는 이유는 보안에 대한 환경설정을 따로 하신 것일까요?(보안과 관련된 환경변수 설정은 필수가 아니어도 대부분 하는 편인지 궁금합니다 .. : )) How to use this imageStart a mongo server instance$ docker run --name some-mongo -d mongo:tag
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
프론트와 백 통신
안녕하세요 선생님, 강의 잘 봤습니다.선생님이께서 알려주신대로, 제가 하고 있는 프로젝트를 local환경에서 compose를 통해 성공적으로 띄웠습니다.근데 여기서 궁금한 점이 mysql 이나 redis와 같이 spring boot에 연결하는 건 service 이름을 통해 요청을 하는 반면에, 프론트와 백이 통신할 때는 localhost를 사용해서 통신을 합니다.어떻게 다른 컨테이너에 띄웠는데 localhost로 통신이 되는 지 궁금합니다.(프론트는 vue.js를 node를 이용해서 정적파일로 build 후 nginx 이미지로 만들었습니다.)
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커 볼륨을 사용하는 경우에 대해 질문 있습니다.
안녕하세요!강의 실습에서와 같이 바인드 마운트를 사용하는 경우에 1. 호스트 디렉토리 경로에 디렉토리가 이미 존재하는 경우, 호스트 디렉토리의 파일을 컨테이너 경로에 덮어씌움2.호스트 디렉토리 경로에 디렉토리가 존재하지 않는 경우, 디렉토리를 만들고 컨테이너 경로의 파일들을 호스트 경로에 복사함. 이 두 가지 경우로 나뉘어서 복사되는 규칙이 달라지는데 도커 볼륨을 사용할 때도 동일한 규칙이 적용되나요??도커 볼륨에다가 직접 디렉토리를 생성하는 경우는 없을 것 같아서 최초 처음 컨테이너에 볼륨을 연결하는 경우에만 2번으로 동작할 것 같고, 이후에 동일한 볼륨을 다른 컨테이너에 연결할 때는 1번처럼 동작할 것 같은데 맞을까요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
이미지 삭제 시 에러
windows powershell로 진행중입니다. 컨테이너 중단 -> 삭제 -> 이미지 삭제 진행 시 docker image rm 이미지id 입력하면 Error response from daemon: No such image ~ 오류가 뜹니다. 강의에서는 이미지 id, 이미지명 두가지 방법으로 모두 삭제가 가능하다고 했는데, 혹시 안되는 이유가 뭘까요?