묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
쉬운도커 PART6_네트워크_PDF 8번 슬라이드의 NAT 테이블 예시 표기에 문제가 있습니다.
해당 NAT 테이블 예시에 글자가 NAT 테이블 예시와 포트포워딩 예시와 같이 겹쳐서 보이는 것 같습니다.
-
해결됨개발자를 위한 쉬운 도커
강의 6분 39초 때에 나오는 docker cp 페이지가 강의 자료 PPT에서 보이지 않는 것 같아요
안녕하세요. 강의 6분 39초 때에 나오는 docker cp 단축어가 Part 5 컨테이너 애플리케이션 구성에서 확인되지 않는 것 같습니다. 6분 39초 우측 상단에 part3. 이미지 레지스트리에서도 보이지 않는 것 같아서 혹시 누락된 게 아닌가 여쭤봅니다. 이렇게 좋은 강의를 만들어주셔서 고맙습니다.
-
해결됨개발자를 위한 쉬운 도커
도커 볼륨 경로에 대한 질문입니다
강의 14:50 쯤에 제가 이해한 바로는 맥에서는 도커데스크탑인 가상머신을 사용하기 때문에 저 경로가 도커 데스크탑에서의 볼륨 경로이고 여기에 실제 데이터를 저장한다고 이해했습니다. 그렇다면 만약 도커 데스크탑을 삭제한다면 여기에 저장된 데이터들은 없어지는건가요? 그리고 저 경로에 왜 접근이 힘든건지 잘 모르겠습니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너에도 OS가 포함되는지 궁금합니다.
안녕하세요, 좋은 강의 잘 듣고 있습니다.PART2의 강의자료인 "이미지와_컨테이너 PDF"의 4, 5페이지의 그림을 보면 컨테이너 역시 OS를 포함하는 것으로 표현되어 있습니다. 강사분께서 nginx를 예를 들어주실 때에도 nginx 이미지를 만들때 OS가 포함된다고 설명해 주시 기억이 납니다.다만 보통 블로그나 유튜브 등에서는 VM과 컨테이너 방식을 비교할 때 "컨테이너에는 OS가 포함되지 않는다, 그래서 빠르다"고 표현하는 것을 종종 보아왔기에 이 부분이 헷갈립니다.5페이지의 그림을 잘 보면 컨테이너들은 각각 OS를 포함하고 있고, 커널은 HOST OS의 것을 공유하는 것으로 이해됩니다. 이말은 컨테이너에 포함된 OS는 커널을 포함하고 있지 않는 것인가요? 즉, "각 컨테이너들은 커널을 포함하고 있지 않고 (단, OS는 포함하고 있음) 호스트의 커널을 공유하기때문에 커널이 포함되어 있는 전체 OS를 모두 가지고 실행되는 VM대비 가볍다" 라고 이해해도 무방할까요? 제가 시스템, OS 쪽 지식이 너무 얕습니다. 초보적인 질문이라도 양해부탁드립니다.
-
해결됨개발자를 위한 쉬운 도커
commit 예제에서 -c 'CMD ["nginx", "-g", "daemon off;"]'가 필요한 이유가 궁금합니다.
이미지 커밋 예제를 보면 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx (개인레지스트리명)/commitnginx를 통해 이미지를 커밋하고있습니다.이때 -c 'CMD ["nginx", "-g", "daemon off;"]' 옵션을 포함하지 않고 커밋하면 컨테이너가 정상적으로 실행되지 않고 곧바로 Exited되는 것을 확인하였습니다.커밋시 -c 'CMD ["nginx", "-g", "daemon off;"]' 를 포함해야 하는 이유가 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
docker run -d -p 8080:3000 관해서 질문 있습니다.
docker run -d -p 8080:3000 --name defaultColorApp devwikirepo/envnodecolorapp제가 이해하고 있는 부분해당 도커 실행 명령어 중 docker run -d -p 8080:3000 명령어는 호스트의 8080 포트를 컨테이너의 3000 포트에 매핑하여 실행한다. 제가 시도한 부분 docker run -d -p 8080:3000 docker run -d -p 8080:3001 로 내부 컨테이터 포트를(3000 -> 3001) 바꾸게 되면 동작하지 않습니다. 제 생각에는 해당 이미지에 할당된 포트번호 있다고 예상했고 docker image inspect devwikirepo/envnodecolorapp 을 실행 후 해당 이미지 Json에 포트번호가 있는것을 확인했습니다. "ExposedPorts": { "3000/tcp": {} }, 제가 궁금한 부분1. "ExposedPorts" 의 "3000/tcp": 내부 컨테이너 포트번호는 별도로 세팅할 수 없나요? 2. 제가 시도하여 찾은 "ExposedPorts"의 "3000/tcp": {} 이 docker run -d -p 8080:3000명령어의 :3000 과 같나요? 3. 8080:3001 로 내부 컨테이너 포트번호를 변경 시 컨테이너 실행은 정상적으로 되지만 왜 Nginx에 접속할 수 없는 걸까요?
-
해결됨개발자를 위한 쉬운 도커
섹션4. 이미지 빌드에서 이미지 커밋이 안되는 현상이 있어 문의드립니다.
안녕하세요. 강의에서 말씀하신 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx kimminho0428/commitnginx:1.0위의 커맨드로 official Nginx 커밋을 시도했으나 commit이 되지 않아 문의드립니다.docker ps 명령어로 확인할 때 nginx 컨테이너는 실행 중이나 이런 현상이 발생했습니다.문법상의 오류로 보이는데 답변부탁드립니다.감사합니다.
-
해결됨개발자를 위한 쉬운 도커
leafy-front end 부분 여쭤볼게 있습니다.
안녕하세요 docker 수업 잘 듣고 있습니다.다름이 아니라 frontend 부분 빌드한 후 /app/dist -> /usr/share/nginx/html하게 되면 404 error 가 뜨게 됩니다.conf file 에서 경로를 못찾는게 아닐까 합니다...그래서 확인해본 봐로는 /etc/nginx/nginx.confhttp { server { listen 80; # 삭제 가능 server_name localhost; #삭제 가능 location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } }을 삽입 하면 잘 됩니다. 혹시 강의 하신 내용에서는 이부분이 없느데도 잘 작동하는데 이유를 알 수 있을까 해서 질문 드립니다.감사합니다.
-
해결됨개발자를 위한 쉬운 도커
도커파일 생성 에러
Dockerfile-000 이런식으로 파일명을 만들때 Dockerfile-basic까지는 빌드까지 완료하고 이미지로 만들었는데 Dockerfile-meta 만들때 갑자기 파일이 도커파일이 아닌 일반파일로 바껴서 빌드도 안되는데 뭐가 문제인걸까요?
-
해결됨개발자를 위한 쉬운 도커
명령어 종류에 따른 동작에 대해 질문이 있습니다.
안녕하세요. 컨테이너 동작에 대한 명령어 run/start에 대해 질문이 있습니다.두 명령어 다 -i옵션이 있지만 run명령어는 기본적으로 쉘에 컨테이너의 stdin을 잡는 반면 start명령어는 잡지않는것으로 보여서 옵션을 찾아보니 두 명령어 모두 -i옵션이 있긴한것으로 확인했습니다. 하지만 설명에 stdin을 잡아놓지 않은 경우에 옵션이 유효하다고 명시되어 있는것도 확인했는데,두 명령어에 대한 interactive 기본값이 다른것으로 해석하면 되는지가 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
사용자 로그인 정보 확인
강의 영상처럼 docker login 명령으로 로그인후 cat 명령어로 정보를 확인하려고 했지만 해당 파일이나 폴더가 없다고 나옵니다. 맥을 쓰고 있는데 저장경로가 달라서 그런걸까요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너 런타임에 관한 질문이 있습니다.
컨테이너 런타임은 컨테이너를 생성 혹은 제거할때에만 관여하는건가요??
-
해결됨개발자를 위한 쉬운 도커
leafy 애플리케이션 구성 강의중 db 문제
안녕하세요, 강의 잘 수강하고 있습니다.강의중 db를 실행시키고 10분이자나도 ready가 안 된다면어떠한 문제가 있는 건가요?두세번 반복해서 실행해도 올라오지 않습니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너 포트 질문
도커 컨테이너 3개 모두 포트 번호가 다 똑같던데 클라이언트가 만약에 도메인:80번포트를 요청하면 어디로 요청이 가는건가요?
-
해결됨개발자를 위한 쉬운 도커
맥에서는 도커를 어떻게 사용하는건가요?
맥에서 iterm에 접속하고 docker -version을 치면 docker server의 os가 linux로 나와있어서 그때부터 의문점이 생겨 질문드립니다. 도커가 리눅스 커널(Namespace, Cgroups)를 활용하여 컨테이너를 만들고 관리하는 것 같습니다. 그런데 맥에서는 어떻게 이게 가능한건지 궁금합니다. 제 예상으로는 도커 데스크탑이 어떤 기술에 의해 리눅스명령을 도커에 실행하면 도커가 명령을 받고 필요한 시스템 콜을 요청할때 도커 데스크탑이 맥 os가 알아들을 수 있게 변환작업을 하는 것같은데 맞는 걸까요?
-
해결됨개발자를 위한 쉬운 도커
이미지안에는 OS 에 관련 궁금한 사항
현재 강좌까지 들은 상황에서 궁금한 점이 있어 글을 쓰게 되었습니다.이미지 안에 OS 도 포함된 것으로 보이는데 그렇다면 이미지를 만드는 주체자는 각 OS 별로 별도로 파일들을 만들어줘야 하나요? 그렇다면 너무 많은 이미지를 생성해야하는 것 아닌가 하는 의문이 듭니다. -- 강의 설명이 아주 친절해서 좋은 것 같아요. :)
-
미해결
Docker container로 되어 있는 프로그램을 돌리려고 하는데 해결되지 않는 문제가 있습니다.
이런 것을 물어봐도 될까 모르겠습니다만, 진짜 1년이상 가는 삽질의 끝에 어디서 부터 어디를 파야 하는지 도무지 감을 잡지 못해서 여기다가 물어보게 되었습니다.일단 저는 카페24에서 호스팅 서비스를 이용해서 가상 서버 공간을 따로 받았고, centos 7에서 docker와 docker-compose까지는 설치를 했습니다. 그리고 나서 가상화 서버에다가 docker container가 아닌, 그냥 install 명령으로 httpd라고 아파치 서버를 설치해서 일단 홈페이지에 접속하면 아파치 기본 정보는 보이게 만들어 놓는 데는 성공했습니다.문제는 제가 전자연구노트를 설치해 보려고 해서 다음과 같은 과정을 거치면서 상당한 시행착오가 일어나게 되었습니다. 먼저 indigo ELN이라고 해서 오픈소스로 배포 중인 전자 연구노트입니다. 여기서 하나 살펴 보자고 하면, 일단 git hub에 공개적으로 공개되어 있는 물건이기도 합니다. 먼저 git hub에 있는 원본의 파일을 일단 가지고 오는데 까지는 그렇게 까지 큰 문제가 없기는 했습니다. 그리고 나서 다음으로 docker-compose up -d 명령을 사용해서 다음과 같이 도커를 작동 시키는 데 까지도 성공했습니다.실제로 docker ps 명령을 가지고 쳐 보면, 위 스크린샷에서 볼 수 있는 것과 같이 일단 indigo ELN을 구성하고 있는 4개의 도커는 작동을 하고 있는 것을 확인할 수 있습니다. 문제가 그렇다고 해서 접속을 하게 되면 전혀 안되냐 하면, 도커 이미지 속에 있는 index.html파일까지 접근이 되는 것을 확인할 수 있고, 제가 설정해 놓은 문구까지 확인을 할 수 있었습니다. 문제는 8080포트를 쓰고 있는 database의 도커 콘테이너에 접속해서 가지고 있는 콘텐츠를 가지고 와야 하는데 여기서 부터 해결할 수 없는 에러가 발생을 하고 있는 것 입니다. 무엇이 문제인지 몰라서 CORS에러인가 해서 건드려 보면, 삽질이 되고, 다른 어기서 문제인가 해서 보면 그것도 아니고, 거기다가 또 문제라면 문제가 있습니다. 이렇게 파이어폭스의 개발자 콘솔을 보면, invalid host header라고 계속 뜨다가 저런 에러가 터지면서 제가 넣어놓은 문구만 뜨고, 나머지 내용은 전혀 볼 수 없는 상황이 계속되고 있습니다. 당장의 해결이 어렵다고 해도, 어디서 부터 어디를 건드려야 할지 모르는 상황이 되어서 그런데, 여기 인프런에서 관련된 지식이 없는지 그거라도 알아보고자 합니다. 여기저기 검색하고 chat GPT를 사용해도 속 시원한 해결책은 나오지 않고, 중구난방으로 얽히기만 계속 하고 있습니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
NestJS Dockerizing Error loading shared library bcypt 에러
강의의 내용와 조금 동떨어진 질문일 수 있지만 글 올려 봅니다. 무관하시다 생각하시면 답변 달아주지 않으셔도 좋습니다. auth 기능을 로컬에서 구현 후, dockerizing 하는 부분에서 Error: Error loading shared library /gateway/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: Exec format error 와 같은 에러가 나서 구동되지 않습니다. Dockerfile 은 FROM node:12-alpine RUN apk update && apk add --no-cache curl vim bash WORKDIR /app COPY package*.json ./ RUN npm install COPY . . 이고, bcrypt 는 npm i bcrypt npm i -D @types/bcrypt 로 하여 설치하였습니다. container 안에서 npm i bcrypt npm i -D @types/bcrypt 명령어를 이용해서 bcrypt 를 다시 설치하면, 정상적으로 구동됩니다.
-
미해결초보를 위한 도커 안내서
docker-compose up 할 때 환경변수 타입 에러 문의
안녕하세요. 강의 잘 듣고 있습니다. docker-compose up 실습을 위하여 강의내용처럼 `.yml` 파일에 코드를 작성하고 `docker-compose up` 명령어를 입력했는데 `.yml` 파일 안에 문자열(String) 타입이 아닌 `WORDPRESS_DB_HOST: db:3306`이 포함되어 있다고 invalid 에러가 뜹니다. 강의내용대로 한 것 같은데 뭐가 문제일까요... docker-compose.yml 소스 코드 version: '2' services: db: image: mysql:5.7 volumes: - ./mysql:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: image: wordpress:latest volumes: - ./wp:/var/www/html ports: - "8000:80" restart: always environment: - WORDPRESS_DB_HOST: db:3306 - WORDPRESS_DB_PASSWORD: wordpress 에러 메시지 ❯ docker-compose up ─╯ ERROR: The Compose file './docker-compose.yml' is invalid because: services.wordpress.environment contains {"WORDPRESS_DB_HOST": "db:3306"}, which is an invalid type, it should be a string
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
도커 컴포즈 설치에서 막히시는 분들~
버전이 강의 따라하면서 도커 컴포즈에서 버전이 안나와서 보다보니 pdf 복사한걸로 하면 윈도우라서 복사가 잘 안된건지 notfound 만 docker-compose에 남게 되네요 아래 명령어로 설치하면 강의와 동일한 버전으로 할수 있는거 같아요 sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 네트웍 운영만 하다 새롭게 리눅스 도커 등등 공부해보고 있는데 많은 도움이 되네요~