Infra/컨테이너
-
Docker Attached & Detached ContainerInfra/컨테이너 2022. 9. 14. 17:42
Container를 시작하는 두가지 명령어 docker start (컨테이너 이름 또는 ID) 해당 명령어로 Container를 재시작하면 터미널 프로세스가 즉시 완료된다. 터미널을 실행중인 Docker Container에 연결하지 않는다.(Container는 background로 실행중인 상태가 된다.) 해당 Container는 터미널에서 블록되지 않았을 뿐이지 실행 중 이다. -detached 실행 docker run -p 외부에서 접근할 포트번호:외부에 노출할 포트 번호 이미지ID 이전의 실행한 dockr run 명령과는 다르다. 7070포트에는 이미 다른 Container가 실행 중 이므로 8070 포트 번호를 사용하여 동일 Image기반으로 새로운 추가 Container를 실행한다. -attac..
-
Docker Container 중지 & 재시작Infra/컨테이너 2022. 8. 22. 15:18
반드시 알고 있어야 하는 핵심 명령어 docker ps docker ps -a 모든 Container를 목록으로 보여준다. 하지만 오로직 실행 중인 Container만 거기에 해당하며, 실행이 중지된 Container도 포함해서 목록으로 보고 싶다면 option -a를 추가해서 명령어를 실행해야 한다. docker ps --help docker ps에 사용된느 가능한 모든 구성 option이 표시된다. Docker로 할 수 있는 중요한 한 가지는 실행이 중지된 Container를 실행할 수 있다는 것이다. 또 한 새로운 Container를 항상 docker run으로 실행할 필요는 없다. docker run을 사용하면 1)Image를 기반으로 새로운 Container를 만들고 2)이 후에 만들어진 Con..
-
Docker Image와 Comtainer 관리Infra/컨테이너 2022. 8. 22. 14:28
Container와 Image를 구성하고 관리하는 방법을 지금까지는 image를 구축하는 방법을 살펴보았기 때문에 앞으로는 Docker에 내장된 몇 가지 핵심 구성 옵션과 핵심기능을 포함해 Container를 실행하는 방법, Container를 중지하는 방법 등등을 알아본다. Image 1. tagged tag는 기본적으로 Image를 명명하는 이름을 가르킨다. 2. listed 과거에 만든 image를 나열하는 방법 3. analyzed Image를 분석하고 검사하는 방법 4. removed 더 이상 image가 필요하지 않은 경우, Image를 제거하고 지우는 방법 Container 1. named Container 이름을 지정하는 방법 2. cofigured in detail 다양한 option을 ..
-
Docker Layer를 기반으로 하는 아키텍쳐 ImageInfra/컨테이너 2022. 8. 21. 13:09
Image의 Layer custom image를 build한 후에 소스코드의 수정사항이 없이 다시 또다른 custom image를 build해서 만들어 내면 매우 빠른 속도로 새로운 custorm image가 만들어 지는 것을 확인할 수 있다. 이때 CACHED(캐시되었다)라는 메시지를 볼 수 있다. 왜냐하면 Docker는 기본적으로 위 모든 명령에 대해 명령어를 다시 실행 했을 때의 결과가 이전과 동일하다는 것을 인식했기 때문이다. 동인한 작업 디렉토리를 가지고 있고(/app), 복사할 코드는 전혀 변경되지 않았으며, 복사가 필요한 새 파일도 변경된 파일도 없음으로 Docker는 실제로 그 명령을 다시 거칠 필요가 없다고 추론한 것이다. image를 build할 때마다 도커는 모든 명령 결과를 캐시하고..
-
Docker custom Image의 동작방식(소스코드에 변경사항이 있을 경우)Infra/컨테이너 2022. 8. 21. 10:54
Container에서 실행하는 Application의 코드의 변경사항이 있을때 const express = require("express"); const bodyParser = require("body-parser"); const app = express(); let userGoal = "Learn Docker!"; app.use( bodyParser.urlencoded({ extended: false, }) ); app.use(express.static("public")); app.get("/", (req, res) => { res.send(` My Course Goal ${userGoal} Course Goal Set Course Goal `); }); app.post("/store-goal", (r..
-
Docker Custom ImageInfra/컨테이너 2022. 8. 20. 18:59
FROM node WORKDIR /app COPY . /app RUN npm install EXPOSE 8080 CMD node server.js 위 Dockerfile을 Image로 변환한 다음 궁극적으로는 Container로 변환하는 방법은 무엇일까? build docker run X docker build O VScode 내장 터미널을 열어 이번에는 docker run이 아닌 docker build를 입력해준다. 왜냐하면 지금 단계에서는 image를 실행하고 싶지 않기 때문이다. 지금은 무엇보다도 먼저 Image를 만들어야 하는 단계이다. 즉 Dockerfile에 적힌 명령에 따라 Image를 만들고자 하는 것인데 build명령어로 그것을 수행할 수 있다. docker build . Dockerfi..
-
Docker Finding/Creating Images 2Infra/컨테이너 2022. 8. 20. 12:07
Custom 코드(Application)를 포함하는 Docker Container 만들기 어떻게 하면 Docker Hub에서 제공한는 노드 Imag를 기반으로 활용하여 Docker Finding/Creating Images 1에서 실행한 것과 같은 Application을 실행하는 custom Image를 구축할 수 있을까? custom image를 build하려면, 일단 코드가 포함된 폴더로 이동해야 한다. 그리고 거기에 새로운 file을 만들어야 한다. Dockerfile이라는 파일인데 이것은 Docker에 의해 식별된는 이름이다. Dockerfile 명령어 Dockerfile에는 custorm imagefmf 빌드할 때 실행하려는 Docker에 대한 명령이 포함된다. 따라서 base image의 설정..
-
Docker Finding/Creating Images 1Infra/컨테이너 2022. 8. 19. 17:38
대다수의 Docker Container 사용 에서 지금 까지 살펴봤었던 노드 Image와 같이 대화형 shell을 제공하는 것을 다운로드하여 실행하고 싶지는 않을 것이다. Container와 Image에 대한 경험을 시작하기에는 좋지만 이것이 모든 것은 아니다. 대신, 일반적으로 이러한 이미지를 기반으로 구축한 다음 이를 기반으로 자신만의 이미지를 구축한다. 예) 우선 노드 Image를 Container로 구축한 다음 그 Container로 특정 노트 JS 코드를 실행할 수 있다. 물론 노드도 여기서는 하나의 예일 뿐이다. 어떤 프로그램 언어를 사용하던 어떤 Application을 구축하던 마찬가지 이다. 일반적으로 공식 Image를 베이스로 가져온 다음 그 위에 코드를 추가하여 그 Image로 코드를 ..