1.RUN 명령어 실행(새로운 레이어 추가) CMD["명령어"]컨테이너 실행시 명령어 지정 두개의 차이점이 이렇다고 하셨는데 어차피 컨테이너를 실행하는과정에서 처음에 실행되는것은 같은것같은데 차이점이: CMD는 이미지당 1개 RUN은 여러개가 가능하며 레이어의 관점에서 CMD는 추가가 안되고 RUN의경우 레이어에 추가가되는 차이가 있는걸까요?? 2.그리고 해당 부분에서 docker run 실행명령을 통해서 적히는 부분은 CMD로만 적히고 컨테이너가 실행이 되고나서부터 실행하는것이 run으로 기록이 된다 라고 이해하면될까요?
안녕하세요! 강의 항상 잘듣고 있습니다. Dockerfile 지시어 강의를 수강 중에 node.js로 된 프로젝트를 Dockfile을 작성해서 이미지를 빌드하는 중에 이런식으로 run 명령어를 통해 이미지를 실행시켜도 ps로 확인해보면 올라가 있지 않습니다. 제가 어느 부분을 놓치고 있는지 궁금합니다.
일프로님 안녕하세요! 오늘 강의 결제 후 듣고 있는데 섹션 1에서 강의가 안보여서요. 원래 아무 강의도 없는 건가요? 그리고 처음 쿠버네티스를 접하는 학부생인데 (그 전에는 도커만 조금 건드려 보았어요..) 결제 후 이런 질문을 하는게 늦은 것 같긴 합니다만 바로 이 강의를 들어도 되는 걸까요 ㅎㅎ 감사합니다! 🙂
안녕하세요. 강의 6분 39초 때에 나오는 docker cp 단축어가 Part 5 컨테이너 애플리케이션 구성 에서 확인되지 않는 것 같습니다. 6분 39초 우측 상단에 part3. 이미지 레지스트리 에서도 보이지 않는 것 같아서 혹시 누락된 게 아닌가 여쭤봅니다. 이렇게 좋은 강의를 만들어주셔서 고맙습니다.
강의 14:50 쯤에 제가 이해한 바로는 맥에서는 도커데스크탑인 가상머신을 사용하기 때문에 저 경로가 도커 데스크탑에서의 볼륨 경로이고 여기에 실제 데이터를 저장한다고 이해했습니다. 그렇다면 만약 도커 데스크탑을 삭제한다면 여기에 저장된 데이터들은 없어지는건가요? 그리고 저 경로에 왜 접근이 힘든건지 잘 모르겠습니다.
안녕하세요, 좋은 강의 잘 듣고 있습니다. PART2의 강의자료인 "이미지와_컨테이너 PDF"의 4, 5페이지의 그림을 보면 컨테이너 역시 OS를 포함하는 것으로 표현되어 있습니다. 강사분께서 nginx를 예를 들어주실 때에도 nginx 이미지를 만들때 OS가 포함된다고 설명해 주시 기억이 납니다. 다만 보통 블로그나 유튜브 등에서는 VM과 컨테이너 방식을 비교할 때 "컨테이너에는 OS가 포함되지 않는다, 그래서 빠르다"고 표현하는 것을 종종 보아왔기에 이 부분이 헷갈립니다. 5페이지의 그림을 잘 보면 컨테이너들은 각각 OS를 포함하고 있고, 커널은 HOST OS의 것을 공유하는 것으로 이해됩니다. 이말은 컨테이너에 포함된 OS는 커널을 포함하고 있지 않는 것인가요? 즉, "각 컨테이너들은 커널을 포함하고 있지 않고 (단, OS는 포함하고 있음) 호스트의 커널을 공유하기때문에 커널이 포함되어 있는 전체 OS를 모두 가지고 실행되는 VM대비 가볍다" 라고 이해해도 무방할까요? 제가 시스템, OS 쪽 지식이 너무 얕습니다. 초보적인 질문이라도 양해부탁드립니다.
이미지 커밋 예제를 보면 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 --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에 접속할 수 없는 걸까요?
안녕하세요. 강의에서 말씀하신 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 컨테이너는 실행 중이나 이런 현상이 발생했습니다. 문법상의 오류로 보이는데 답변부탁드립니다. 감사합니다.
안녕하세요 docker 수업 잘 듣고 있습니다. 다름이 아니라 frontend 부분 빌드한 후 /app/dist -> /usr/share/nginx/html 하게 되면 404 error 가 뜨게 됩니다. conf file 에서 경로를 못찾는게 아닐까 합니다... 그래서 확인해본 봐로는 /etc/nginx/nginx.conf http { server { listen 80; # 삭제 가능 server_name localhost; #삭제 가능 location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } } 을 삽입 하면 잘 됩니다. 혹시 강의 하신 내용에서는 이부분이 없느데도 잘 작동하는데 이유를 알 수 있을까 해서 질문 드립니다. 감사합니다.
안녕하세요. 컨테이너 동작에 대한 명령어 run/start에 대해 질문이 있습니다. 두 명령어 다 -i옵션이 있지만 run명령어는 기본적으로 쉘에 컨테이너의 stdin을 잡는 반면 start명령어는 잡지않는것으로 보여서 옵션을 찾아보니 두 명령어 모두 -i옵션이 있긴한것으로 확인했습니다. 하지만 설명에 stdin을 잡아놓지 않은 경우에 옵션이 유효하다고 명시되어 있는것도 확인했는데, 두 명령어에 대한 interactive 기본값이 다른것으로 해석하면 되는지가 궁금합니다.
안녕하세요. 강의 잘 듣고 있습니다. 감사합니다. 스프린트 2 실습환경 구축 중 kubectl command not found 이슈가 생겨서 vagrant 파일을 확인했는데 kubectl 설치 항목에 kubelet만 설치되고 있고 kubectl을 설치하는 코드가 없더라구요 그래서 따로 yum install -y kubectl-1.27.2-150500.1.1.x86_64 --disableexcludes=kubernetes 위 항목을 넣어 설치하니 해결되었습니다. 혹시 제가 놓친 부분이 있어서 kubectl command not found 이슈를 만난 것인지 궁금하여 질문 드립니다! https://cafe.naver.com/kubeops/84 위 가이드를 따라 만들었고, https://raw.githubusercontent.com/k8s-1pro/install/main/ground/cicd-server/vagrant-2.3.4/Vagrantfile 해당 vagrant file에 kubectl 설치 스크립트가 존재하지 않았습니다.
안녕하세요! 선생님 강의 감사하게 잘 듣고 있습니다! 다름이 아니라 헷갈리는 부분이 있어서 질문드립니다. 강의에서 설명해주시는 것을 바탕으로 다음과 같이 정리했습니다. Container Runtime : 컨테이너 생성해주는 역할 ContainerD, CRI-O, 미란티스 컨테이너 런타임이 있다. 의문점이 생긴 부분은 다음 내용입니다. 강의를 진행하시면서 "Docker로 만든 이미지가 CRI-O에서 잘 돌아갈 것이라 생각할 수 있다" 라고 부연설명을 해주셨는데, Container Runtime이 Container의 실행하는 역할도 수행할 수 있는 것인가요? 혹은 Docker로 만든 이미지와 CRI-O를 통해서 만든 이미지는 같다라고 말씀하고 싶으셨던 걸까요? 컨테이너 런타임은 컨테이너를 생성하는 주체라고 이해하면서 해당 부분이 헷갈려 추가적으로 찾아보기도 했는데, 명확하게 무엇인지 혹은 어떤 역할을 하는지 알려주는 레퍼런스가 없어서 질문드립니다!