묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
스프링 도커 데이터베이스 연결 오류
현재 이것이 백엔드 개발이다 with 자바편 책을 보면서 학습중입니다.스프링부트에 도커에서 실행되는 데이터베이스(mysql)를 연동하려고 하는데 위와 같은 에러가 발생합니다.스프링부트 pom.xml 내용 중 mysql 의존성 부분application.properties 부분도커 컨테이너 생성에서 mysql 버전Application.java 책에서 나온 내용과 동일하게 진행했으며 스키마, 데이터베이스 테이블까지 만든 상태입니다. 어떤 것이 잘못된 건지 감이 잡히지 않습니다. 도움 부탁드려요
-
미해결
쿠버네티스 클러스터 구성
안녕하세요, 선생님들.. 입사한지 막 1년이 된 어른이 입니다... 지금 최대 난관에 봉착 되어 있습니다.사내 망 베어메탈 환경에 구축된 쿠버네티스 클러스터에, 사외 망에 있는 VM 10대를 워커 노드로 추가하려고 합니다. 문제가 VM 특성 상 NAT IP 1개에 SSH 접속 포트는 10개로 (1xx01~1xx10) 구별하고 있고, 모든 포트도 오픈 할 수 없는 상황입니다. 이런 조건에서 VM을 워커노드로 추가가 가능한 것인지..., 가능하다면 좋은 방법이 있으신지 질문 드려봅니다. 노드 추가는 Kubespray로 하고 있고, CNI는 calico 환경입니다.추가로, VM에 배포한 Calico Pod의 에러로그를 보니 10.233.0.1 (사내 망의 Master Node의 default service 주소)를 못 찾고 있었습니다. VM Calico Pod -> Master Node k8s default service -> Master Node api server 순으로 찌르는 것 같았습니다. 더불어, VM에서는 curl -k "https://121.134.39.25(master node nat ip):6443/api" 할 때 응답이 오긴 했었습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
ec2 도커 빌드중 빌드 멈춤
안녕하세요 멘토님! 강의 잘 듣고 열심히 정리중 입니다.ㅎㅎ프로젝트를 도커로 배포하는 중에 문제가 발생했습니다.위와같이 도커로 배포중 yarn build를 실행할 때 빌드 시간이 멈추고 진행되지 않습니다.새로고침하고 다시 인스턴스 터미널에 들어가면 연결이 지연되어 연결실패가 뜹니다.(해당 에러는 인스턴스 상태에서 재부팅을 통해 해결했습니다.)해당 문제를 해결하기 위해 아래와 같이 시도했습니다.1. 도커 푸룬으로 이미지, 캐시등 삭제 - docker system prune -a 2. ec2 볼륨을 16기가로 올렸습니다. - 파티션화도 완료시켰습니다. - df -h로 xada1의 용량이 46%에서 23%로 줄어든 것을 확인했습니다. 더이상의 방법이 구글링과 제 머리로는 해결되지 않아 질문 올립니다.감사합니다!
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
배포 관련 질문
안녕하세요, 강사님.강의를 듣고 있는 학생입니다.제가 Next.js를 가지고 개발을 하고 있는데 배포를 할 때, Next.js로만 dockerfile을 작성해서 배포하면 되는 걸까요? 아니면 Vue.js와 같은 SPA 처럼 Nginx를 포함시켜서 dockerfile을 작성하고 각각 컨테이너를 만들고 연결시켜주면 되는 건가요?제가 이쪽 지식이 부족해서 수업 이외에 다른 것도 여쭤보게 되었는데,, 만약 답변이 가능하시다면 염치불구하고 물어보고 싶습니다 ㅠㅠ배포 환경은 EC2와 같은 가상컴퓨터환경(클라우드)에서 쿠버네티스를 만들고 그 위에 올릴거 같은데,, 어떤 구조를 참고하면 좋을지 고민이에요.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
(에러) volume이 작동하지 않아 server.js 업데이트 되지 않을때
윈도우 기준으로 작성했습니다.server.js를 변경해서 도커를 다시 실행해도 변경된 코드가 반영되지 않은 문제를 확인함.도커 컨테이너 내부 server.js를 확인하기 위해 아래 명령어로 컨테이너에 진입docker exec -it 컨테이너아이디 shserver.js 파일을 읽기 위해 아래 명령어를 입력함nano server.js하지만 아래와 같은 출력이 발생하면서 파일 읽기에 실패함아래 명령어들을 입력해 해결apt-get updateapt-get install nanonano 설치완료 후 server.js를 읽으니 아래와 같이 변경전 코드가 확인됨:1) 변경전res.send('Hello Word');2) 변경후res.send('zxzzzzz');3) 도커 컨테이너에서 확인한 코드도커 명령어를 완벽히 이해하지 못한 상태로 본 글을 작성했습니다. 따라서 부족한 부분이 있을 수 있습니다. 다음 강의를 위해 우선 기능이 작동하는데 초점을 맞췄다는 점 참고 부탁드립니다. 명령어 변경:docker run -d -it -p 5000:3200 -v "/$(pwd)/server.js:/usr/src/app/server.js" joykim93/nodejs:latest도커 컨테이너에서 server.js 파일 확인 참고:https://docs.docker.com/storage/bind-mounts/https://cloudkul.com/knowledgebase/nano-command-not-found-docker/https://itzone.tistory.com/610
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Error: 'app.router' is deprecated!
강의와 같은 코드로 도커를 실행하면 아래와 같은 에러가 발생했습니다.Error: 'app.router' is deprecated!해당 에러는 아래와 같이 코드를 변경해주시면 해결 가능합니다. 변경 전 코드:app.router.get('/', (req, res) => { res.send('Hello World');})변경 후 코드:app.get('/', (req, res) => { res.send('Hello World');})
-
미해결
podman user 간 image와 컨테이너 공유
안녕하세요, podman으로 환경 구성을 하던 중 질문이 있습니다.root 계정에 podman을 설치하고 이미지를 pull해와서 컨테이너를 빌드해봤습니다.그리고 나서 다른 user로 접속하여 이미지와 컨테이너를 검색해보니 아무것도 보이지 않습니다.docker에서는 docker 그룹에 user를 추가하여 사용하였는데 podman group은 없는것 같네요...?!임의로 sudo podman images 해주니까 보이긴 합니다.모든 계정에서 동일한 이미지와 컨테이너를 보려면 어떻게 해야되나요?다른 user계정에 root권한을 주지 않고 가능한 방법이 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
source-connect 등록 시 에러 질문이요
안녕하세요 강사님 강의 잘 듣고 있습니다.제가 기존에 윈도우에서 mariadb를 설치하고 3307포트를 사용하고 있었습니다.그런데 윈도우에서 진행하면 여러가지 오류로 때문에docker에다 mariadb를 pull 받고 run 해서 3308포트를 포트바인딩으로 3306포트를 사용하게 했습니다.docker run --name mariadb -d -p 3308:3306 --restart=always -e MYSQL_ROOT_PASSWORD=비민번호 mariad포트바인딩한 이유는도커로 실행한 mariadb 에서 port가 3306을 사용중이어서 그랬습니다.(도커로 받은 이미지는 안 건드는게 좋을 것 같아서 포트바인딩을 했습니다.) 결국 주키퍼, 카프카, 카프카커넥트를 모두 켜고 my-source-connect를 아래와 같이 등록했습니다.{ "name" : "my-source-connect", "config" : { "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url":"jdbc:mysql://localhost:3306/mydb", "connection.user":"root", "connection.password":"비민번호입력함", "mode": "incrementing", "incrementing.column.name" : "id", "table.whitelist":"users", "topic.prefix" : "my_topic_", "tasks.max" : "1" } }그러면 response body에 my-source-connect가 성공한 response가 201로 응답되고127.0.0.1:8083/connectors 로 get 요청해도my-source-connect가 잘 뜹니다. 하지만 문제는127.0.0.1:8083/connectors/my-source-connect/status 으로 get 요청하면 다음과같이FAILD가 뜹니다.{ "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "192.168.56.1:8083", "trace": "org.apache.kafka.connect.errors.ConnectException: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:59)\r\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:94)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:750)\r\nCaused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\r\n\tat com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)\r\n\tat com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)\r\n\tat com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)\r\n\tat java.sql.DriverManager.getConnection(DriverManager.java:664)\r\n\tat java.sql.DriverManager.getConnection(DriverManager.java:208)\r\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getConnection(GenericDatabaseDialect.java:250)\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.newConnection(CachedConnectionProvider.java:80)\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:52)\r\n\t... 12 more\r\nCaused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)\r\n\tat com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:89)\r\n\tat com.mysql.cj.NativeSession.connect(NativeSession.java:120)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818)\r\n\t... 20 more\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n\tat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n\tat java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)\r\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)\r\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\r\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\r\n\tat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)\r\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)\r\n\tat java.net.Socket.connect(Socket.java:613)\r\n\tat com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153)\r\n\tat com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63)\r\n\t... 23 more\r\n" }, "tasks": [], "type": "source" }예전에 윈도우에 있던 mariadb로 3307포트로 요청하고 get하면 정상적으로 잘 됐습니다.하지만 docker에서 run해서 컨테이너를 생성한 3306포트의 mariadb라서 문제가 있는거 같습니다..response로 온 trace를 검색해도 원인을 파악하기는 어렵네요뭐가 문제로 보이시고 어떻게 해결하는게 좋을까요?감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
도커로 서비스를 올렸을 때 오류가 발생합니다.
저는 jenkins, tomcat 을 docker 컨테이너로 올려서 실습을 하고 있는데요..tomcat 서버에 배포를 하려고 보면..오류가 발생하고 있습니다.아무래도 IP 설정이나 계정 정보가 잘못 되었을 거로 판단이 되는데..docker 로 서비스를 구동한 경우에tomcat IP를 어떤걸로 해야 하나요?제 로컬PC의 IP 인지.. localhost 인지.. tomcat 컨테이너의 IP인지... 확인 부탁드립니다.
-
미해결운영체제 공룡책 강의
교수님 Docker 로 실습해도 괜찮을까요?
Mac OS 에서 실습하기 위해 Docker 로 환경설정을 했습니다. Docker로 실습 진행 가능할까요?
-
미해결초보를 위한 도커 안내서
docker container에서 사용하는 환경변수...
강의 정말 잘 보고 있습니다. 헷갈릴 때 마다 와서 다시 정주행 하는 것 같네요..ㅎㅎ 궁금한 점은, docker 컨테이너 만들 때 환경변수를 전달하는데, 개발할 때는 -e 옵션이나, env file위치를 넣어줄 수 있는데 실제 운영환경에서는 환경변수를 어떤식으로 관리하고 있나요 ? 감사합니다 ^^
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
ubuntu Docker portainer 설치후 재부팅 하면.. portainer 실행방법 ㅠ
안녕하세요 남박사님.. ubuntu 에서 docker설치 까지 진행한후 ... 강좌중 프로젝트를 docker 이미지로 만들어서 배포 내용중 10:11초까지 진행했는데요 강의 듣고있다가 컴퓨터 문제상 잠시 멈추고.. 재부팅을 하니까 portainer 웹사이트가 열리지 않은데.. 연결 시킬려고 하면 어떻게 해야할까요? 해당 아이피에 9000을넣고 실행해도 연결이 안됩니다. .. docker의 볼륨을 만들어서 portainer를 실행시킬려고 해도.. 이미 있다고 나오는데.. 검색을 해도 잘안나오는거 같아서 여쭤봅니다..!
-
미해결
cmd에서 vagrant와 vagrant init 실행이 안됩니다.
안녕하세요 vagrant 파일 다운을받았고, 버전 확인은 되지만 명령어 확인하는 vagrant와 vagrant init 명령을 cmd에서 사용하면 밑의 에러가 뜹니다.. 환경변수에 추가도 해놨는데도 안되서 이유를 모르겠습니다ㅠㅠ
-
해결됨초보를 위한 도커 안내서
컨테이너간 통신 질문
안녕하세요 :)좋은 강의를 통해 학습하고실제 프로젝트를 도커 이미지화 해보려고 노력하고 있습니다 이 과정에서 궁금증이 생겼는데요 현재 react + nginx 를 사용한 클라이언트단 이미지를 만들어서 컨테이너를 생성하고,mysql 이미지를 통해 컨테이너를 생성하고,spring boot 프로젝트를 빌드하여 이미지 생성, 컨테이너 생성하였습니다. network를 생성하여 3개의 컨테이너를 하나의 network로 묶어두었는데 클라이언트앱에서 서버 api를 호출할 때, 로컬에서만 작업을 했다보니까 POST localhost:8080/api/user/signup 이런식으로 호출을 하고 있습니다. 저는 같은 네트워크로 묶었고, 포트80으로 연결을 해서 통신이 될거라고 생각을 했는데 엔진엑스에서 405 Not Allowed가 뜨네요ㅠㅠㅠapi 호출하는 기본 url을 서버단 컨테이너의 ip주소로 해야한다거나 통신하는 방법이 따로 있을까요 ..?+ 도커 컴포즈 depends on 이나 link를 사용하지 않을 경우서버 컨테이너를 먼저 띄우고, 클라이언트 컨테이너를 띄울때 주는 옵션이나 이런게 있을까요 ?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커에 관련 질문입니다.
제가 구름이라는 사이트에 들어가니 도커로 서버를 만들수 있는 가상환경을 제공해 주던데 도커로 그런 가상환경을 어떻게 제공 할수 있는지 궁금하여 이렇게 질문을 드립니다. 가상환경을 제공할 수 있는 부분이 매우 편리해서 정말 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
도커 컴포즈 volumes
도커 컴포즈 파일 작성중에 volumes에 제 로컬 디렉토리와 컨테이너에 있는 디렉토리를 마운트하는데, 제가 컨테이너에는 디렉토리 구조를 1. 이미지를 제가 만들었다면 알 수 있지만, 2. 이미지를 허브에서 가져온다면 보통 모를 것 같은데 2번과 같은 경우에는 마운트를 하려면 어떻게 해야 하나요? 예시에서 volumes: - ./mysqldata:/var/lib/mysql 이라고 했을 때, 저 혼자 한다면 저는 /var/lib/mysql에 마운트해야 한다는 사실을 모를 것 같아서요
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
도커 컨테이너를 이용한 가상화
안녕하세요 선생님. 도커 컨테이너를 이용해서 가상화하는 것에 대해 질문이 있습니다. 예를 들어 분산 처리를 위해 서버가 4대 정도가 필요하다고 할 때, 도커를 이용해서 4개의 컨테이너를 만들면, 그것들을 이용해서 마치 4대의 서버가 있는 것처럼 작업을 할 수 있나요?
-
미해결초보를 위한 도커 안내서
도커에서 사용하는 OS
안녕하세요. 도커에는 따로 guest OS가 필요 없다면 도커 컨테이너에서 동작하는 프로세스의 OS는 어디에 있나요? 도커에서 제공하는 OS가 있는 건가요? 아니면 Host OS를 사용하는 건가요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
임시 컨테이너를 생성하는 경우는 어떤 경우가 있나요 ?
도커의 유용한 명령어 강의 마지막부분에 임시컨테이너를 생성할 경우 명령어를 사용하라고 하셨는데 그럼 임시컨테이너를 사용 해야 하는 경우는 어떤 경우가 있을까요 ?
-
미해결
도커 멀티스테이지 빌드하면 이미지 none 으로 하나더생기는데 안생기게 할수 있나요?
처음 만들때 사용하는 레이어를 이미지로 만들어서 none 이미지가 생기는건가요? 안생기게 할수 있을까요?