49,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
(에러) docker-compose up --build 입력시 Error: connect ECONNREFUSE 127.0.0.1:6379
docker-compose up --build 명령어 입력시아래와 같은 에러가 발생합니다.도움이 필요합니다.server.jsconst express = require('express'); const redis = require('redis'); // 레디스 클라이언트 생성 const client = redis.createClient({ host: 'redis-server', port: 6379, }); const app = express(); const port = 3200; app.get('/', async (req, res) => { await client.connect(); let number = await client.get('number'); if (number === null) { number = 0; }; console.log('Number: ' + number); res.send("숫자가 1씩 올라갑니다. 숫자: " + number); await client.set("number", parseInt(number) + 1); await client.disconnect(); }); app.listen(port); console.log(`server running port: ${port}`); DockerfileFROM node WORKDIR /usr/src/app COPY ./ ./ RUN npm install CMD ["node", "server.js"] docker-compose.ymlversion: "3" services: redis-server: image: "redis" node-app: build: . ports: - "49160:3200"
- 미해결따라하며 배우는 도커와 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');})
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커 작동 관련 질문
안녕하세요 도커 작동 순서 강의 내용에서 궁금해서 질문드립니다.도커 작동 순서가도커 클라이언트에 명령어 입력 후 도커 서버로 보내고 도커 서버에서 컨테이너를 위한 이미지가 이미 캐쉬가 되어 있는지 확인 한 후없으면 도커 허브에서 다운 받아온다고 하셨는데 도커 허브에도 해당이미지가 없는경우 이미지를 만들어야 하나요? 만약 이미지를 만들면 로컬에서만 사용하게 되는건가요? 아님 허브에 올리는건가요?그리고 이미지를 불러온다고 해도 그 세부 구성은 때에따라 다를 수 있을것 같은데 이미지를 불러와서 커스터마이징 작업을 하나요?그리고 살짝 바보같은 질문일 수 있는데 하나의 컨테이너 안에 여러개 이미지는 안되고, 하나의 이미지로 여러개의 컨테이너를 생성하는것만 되는거죠? 컨테이너를 하나의 OS로 생각하는게 맞을까요?
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커 파일로 도커 이미지 만들기 - failed to solve with fronted dockerfile.v0
강의에서 제공된 명령어docker build ./입력했을 때, 아래와 같은 에러가 발생했습니다.구글링을 통해 아래 명령어를 찾아 실행했고도커 이미지가 정상적으로 생성되었습니다.1) 파일명 변경: DockerFile -> DockerFile.dockerfile (변경하지 않아도 괜찮을꺼 같습니다)2) 명령어:docker build . -f DockerFile.dockerfile3) 터미널 출력:4) 출처:https://stackoverflow.com/questions/64985913/failed-to-solve-with-frontend-dockerfile 더 좋은 방안이 있으면 공유 부탁드립니다.감사합니다.
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커 이미지와 컨테이너에 대해 제가 이해한 것이 맞을까요??
안녕하세요 선생님! 강의 정말 잘 듣고 있습니다.친절하게 설명 해주셨는데도 감이 잘 잡히지 않아 여러강의를 중구난방으로 들으면서 이해를 하였는데요.제가 이해한 것이 맞는 지 확인 가능하실까요?..==================================== 도커가 다양한 인프라 환경에서 프로그램 설치 및 실행이 쉬운 이유??-> 도커 이미지 때문이다.-> 도커 이미지는 프로그램이 실행하는데 필요한 모든 것을 가진 소프트웨어 패키지 인데,프로그램을 실행 하는 명령어파일 스냅샷 으로 이루어져 있다.파일 스냅샷의 맨 아래에는 OS 기능을 하는 base image가 있다.==> 도커 컨테이너는 한 장비에 여러 어플리케이션을 기동하기 위해 인프라 가상화 기능을 지원하는 것일 뿐이고,사실은 도커 이미지에 존재하는 이 base image 덕분에 인프라 환경에 구애받지 않고 프로그램이 실행될 수 있는 것이다.혹은 이 때문이 아니라 도커 엔진이 리눅스 vm이라서 그런 것일까요?그렇다면 도커를 사용하는 서버 장비에는 무조건 도커 엔진이 설치가 되어야 하는 것이겠죠?... ==> 도커 이미지를 실행하면 도커 컨테이너가 만들어지고 해당 컨테이너에 이미지의 파일 스냅샷이 옮겨진 후 컨테이너가 도커 엔진에 의해 실행되면서 도커 설정파일에 정의된 프로그램 시작 명령어가 실행되며 프로세스가 host OS 위에서 기동된다. 가 저의 정리 입니다.. 혹시 위 내용이 맞을까요?...감사합니다..!
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
배포 오류관련
위의 질문 글들을 참조하면서 해결을 해보려했는데 아직 해결이 안되서요 에러는 계속 502에러가 뜨고 엘라스틱 빈스톡에 배포할 때 계속 터집니다. 혹시 최근 수정된 코드라던지 해결방법을 아시면 댓글좀 부탁드리겠습니다.
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
배포 에러 질문입니다.
최근 소스 코드 자료 (21/12/28) 다운받아서 보고있는데,강의 목록 중에 [AWS 업데이트) 일래스틱 빈스톡 플랫폼 브랜치] 와 약간 달라서 질문드립니다. Dockerrun.aws.json에 명시되어 있는 설정들을 docker-compose.yml으로 옮기는 과정에서version: '3' services: nginx: restart: always image: xxx/docker-nginx ports: - "80:80"여기서 mem_limit과 links 부분이 다운받은 소스코드 자료에는 없는데,(version 2.4 도..)어떤 자료가 맞는 것인지 질문드립니다..---그리고 travis ci는 정상적으로 동작하는데,Elastic Beanstalk 환경에서는 상태가 '심각'으로 나옵니다..EB에서 환경으로 이동시, 502 Bad Gateway ...nginx_1 | 2023/01/01 07:37:50 [error] 28#28: *16 connect() failed (113: No route to host) while connecting to upstream, .... frontend/DockerfileFROM node:16-alpine as builder WORKDIR /app COPY ./package.json ./ RUN npm install COPY . . RUN npm run build FROM nginx EXPOSE 3000 COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf COPY --from=builder /app/build /usr/share/nginx/htmlfrontend/nginx/default.confserver { listen 3000; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html } }nginx/default.confupstream frontend { server frontend:3000; } upstream backend { server backend:5000; } server { listen 80; location / { proxy_pass http://frontend; } location /api { proxy_pass http://backend; } location /sockjs-node { proxy_pass http://frontend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } 답변 부탁드립니다.
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
multi app부분 dev 환경 질문입니다.
안녕하세요.docker-multi-app 에서 docker-compose-dev.yml 파일을 이용해서로컬환경에서 화면을 띄워보고 있는데요..const mysql = require("mysql"); const pool = mysql.createPool({ connectionLimit: 10, host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_ROOT_PASSWORD, database: process.env.MYSQL_DATABASE, port: process.env.MYSQL_PORT }); exports.pool = pool;backend/db.js 에서 위처럼 하면 로컬 화면에서 db 연결이 안되는 것 같습니다..const pool = mysql.createPool({ connectionLimit: 10, host: 'mysql', user: 'root', password: '1234', database: 'myapp' . . . . .직접 적어주면 잘 동작합니다. backend: build: dockerfile: Dockerfile.dev context: ./backend container_name: app_backend volumes: - /app/node_modules - ./backend:/app mysql: build: ./mysql restart: unless-stopped container_name: app_mysql ports: - "3306:3306" volumes: - ./mysql/mysql_data:/var/lib/mysql - ./mysql/sqls/:/docker-entrypoint-initdb.d/ environment: MYSQL_ROOT_PASSWORD: 1234 MYSQL_DATABASE: myapp MYSQL_HOST: mysql MYSQL_USER: root # MYSQL_PORT: 3306docker-compose-dev.yml 파일을 위처럼 작성하고,docker compose -f docker-compose-dev.yml up --build . . . . .db.js파일에서 docker-compose-dev.yml의 로컬db서버 환경변수를 가져올거라 생각했는데..왜 직접 적어줄때만 되고, ... 환경변수? process.env.xxx는 안되는 걸까요? docker-compose-dev.yml 파일로 개발환경을 셋팅해서 정상적인 동작을 보려면 mysql.createPool({ connectionLimit: 10, host: 'mysql', user: 'root', password: '1234', database: 'myapp' 이렇게 직접 적어줘야만 하는 것인지.. 다른 방법이 있는지..답변 부탁드립니다.
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
1강 마지막 리눅스 VM에 대해서 질문드립니다
안녕하세요 강사님1강을 공부하다가 이해가 되지 않는 부분이 생겨서 질문드립니다. 컨테이너와 가상화 VM의 차이에 대한 내용을 공부하면서 컨테이너는 게스트 OS를 가지지 않고 VM은 게스트 OS를 가지기 때문이 무겁고 속도가 느릴 수 있다는 내용을 봤는데1강 마지막 부분에 도커 컨테이너는 리눅스 VM에서 실행되고 컨테이너들은 리눅스 커널을 공유한다고 되어있습니다.제가 가상화 컨테이너에 대한 강의 내용을 들으면서 생각했던 컨테이너들의 커널 공유는 호스트 OS인 MAC/윈도우의 커널을 공유하는 것이라고 생각을 했었는데이 부분을 도커는 리눅스를 게스트 OS로 가지는 하나의 VM에서 실행되는 것이고 그 도커가 컨테이너를 가진다고 봐도 맞는 것일까요?궁금한 부분을 해결하고 진도를 나가고 싶어서 자세한 설명을 너무 듣고 싶습니다...
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
dokcer Volume 를 이용한 빌드 이용시 컨테이너 2개
궁금한게 볼륨을 사용하여 빌드를 하면 반영을 도커 컨테이너가 로컬을 바라보고 변경사항이 사소할경우 빠르게 빌드가 진행된다고 이해를 하고 있습니다. 여기서 궁금한점은 볼륨을 활용하여 다시 빌드를 하여도 컨테이너가 2개가 어차피 생기는데 맞을까요>
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
nginx: [emerg] unexpected "}" 오류
nginx: [emerg] unexpected "}" in /etc/nginx/conf.d/default.conf:29오류 해결한 분 계실까요?디버깅해보려고 계속 검색중인데 해결이 안되네요.코드 자체는 강의랑 똑같은데 버전 문제인지..
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
앗.. 에러가 나네요 ㅠㅠ
원인이 무엇인지 모르겠네요 ㅠㅠ버전인 이걸로 만들었습니다...
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
aws 2021-12-28일 업데이트로 인해
이곳을 참고 하라고 하셨는데 수업 자료 파일 말고는 검은색 바탕 화면이 나오는데, 그냥 수업 자료 받아서 docker-multi-app을 다시 Docker Hub로 올려야 할까요?
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
수업 내용중에 app.test 파일 비워두고 다시 commit 하였는데
app.test파일 비우고 커밋 푸시까지 작성하여 다시 Travice CI가 빌드 진행 하였는데, axios 모듈을 찾지 못하는 현상의 오류가 발생 하였습니다.제가 해결한 방법은 fronted/package.json 에서 dependencies에 추가된 axios 버전이 1.2.0으로 최신버전을 사용 하였는데, 이것 때문에 오류인것 같아 강사님의 github 코드를 참고하여 0.19.2로 다운그레이드 하니까 잘됬습니다. 참고하시길 바랄게요.
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker mysql 컨테이너 셀 접속
여러번 질문을 남깁니다..책을 구매해서도 보고 있습니다. 책 264p에서 MySQL의 상태를 확인하려고 하는데 컨테이너가 계속 restarting되어 접근이 안되는데 이럴때는 어떻게 해야하나요??
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
500 에러가 납니다..
docker-compose up이후에 build는 다 되서 메인페이지는 열리지만 이렇게 에러가 납니다. 제가 한게 이상한가 싶어서 깃허브에 있는 코드로 docker-compose up해도 저런 오류가 나는데 무슨 문제인지 궁금합니다..!
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
질문있습니다!
안녕하세요! 저번에 질문에 답변 감사합니다.오늘 강의를 들으며 질문이 몇가지 있어 글을 남깁니다.TYPEORM을 사용하여 데이터베이스와 서버를 연결시켰다면 강의 중에 만드신 mysql폴더를 안 만들어도 될까요?nginx가 정적파일만 제공해주는 설계에서는 강의 중에 만드신 nginx폴더를 안 만들어도 될까요?실무에서도 master브랜치에 프론트엔드 파일, 백엔드 파일 같은 레포에서 관리하는지 궁금합니다. 도커가 처음이라 질문이 많았습니다..
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose.yml 수정 후
안녕하세요. 강의 잘 듣고 있습니다!배포 후 AWS에서 에러난 것을 수정 해주신 코드 보며 잘 해결했습니다.궁금한 점이 docker-compose.yml 내부 코드를 수정하고 나서 다시 터미널에 docker-compose up --build를 해서 컨테이너를 만들고 깃허브에 푸쉬를 해야 하는 지 아니면 바로 깃허브에 푸쉬하면 되는 것인지 궁금합니다.이번에는 혹시 몰라서 빌드를 하고 푸쉬하니 배포는 잘 됐습니다!
- 미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose up 하니까 이런 에러가 출력 되요
강의: Docker Compose 파일 작성하기 시간:7분 26초 명령어:docker-compose upgithub:https://github.com/hyunsokstar/docker-compose-app