독서/시작하세요! 도커 & 쿠버네티스
-
도커 스웜을 사용하는 이유 앞의 내용은 대부분 하나의 호스트를 기준으로 합니다. docker ps는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하며 create, run 명령어 또한 하나의 도커 엔진에 컨테이너를 생성합니다. 하지만 호스트 머신에서 도커 엔진을 구동하다가 CPU, 메모리 같은 자원이 부족하다면 여러 방법이 있겠지만 가장 많이 사용하는 방법이 여러대의 서버를 클러스터로 만들어 자원을 병렬로 확장하는 것입니다. 그러나 여러대의 서버를 하나의 자원 풀로 만드는 것은 쉬운 작업이 아닙니다. 새로운 서버나 컨테이너가 추가됐을 때 이를 발견하는 작업부터 어떤 서버에 컨테이너를 할당 할 것인가에 대한 스케줄러, 로드밸런서, 클러스터 내의 서버가 다운됐을 때 고가용성을 어떻게 보장할지 등이 문제..
7. 도커 스웜도커 스웜을 사용하는 이유 앞의 내용은 대부분 하나의 호스트를 기준으로 합니다. docker ps는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하며 create, run 명령어 또한 하나의 도커 엔진에 컨테이너를 생성합니다. 하지만 호스트 머신에서 도커 엔진을 구동하다가 CPU, 메모리 같은 자원이 부족하다면 여러 방법이 있겠지만 가장 많이 사용하는 방법이 여러대의 서버를 클러스터로 만들어 자원을 병렬로 확장하는 것입니다. 그러나 여러대의 서버를 하나의 자원 풀로 만드는 것은 쉬운 작업이 아닙니다. 새로운 서버나 컨테이너가 추가됐을 때 이를 발견하는 작업부터 어떤 서버에 컨테이너를 할당 할 것인가에 대한 스케줄러, 로드밸런서, 클러스터 내의 서버가 다운됐을 때 고가용성을 어떻게 보장할지 등이 문제..
2023.12.13 -
지금까지 도커를 사용하는 방법에 대해 알아보았습니다. 가장 먼저 알아야 할 컨테이너부터 시작해서 컨테이너의 밑바탕이 되는 이미지, 이미지를 생성할 수 있는 Dockerfile을 알아보았습니다. 그렇다면 이제는 도커 자체를 다뤄볼 차례입니다. 도커 자체에 사용할 수 있는 여러 옵션을 익히면 컨테이너와 이미지를 좀 더 쉽게 사용할 수 있을뿐더러 도커를 이용한 개발이 수월해집니다. 도커의 구조 도커는 /usr/bin/docker 에 위치한 파일을 통해 사용되고 있습니다. 컨테이너와 이미지를 다루는 명령어는 /usr/bin/docker 에서 실행되지만 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다. docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다...
6. 도커 데몬지금까지 도커를 사용하는 방법에 대해 알아보았습니다. 가장 먼저 알아야 할 컨테이너부터 시작해서 컨테이너의 밑바탕이 되는 이미지, 이미지를 생성할 수 있는 Dockerfile을 알아보았습니다. 그렇다면 이제는 도커 자체를 다뤄볼 차례입니다. 도커 자체에 사용할 수 있는 여러 옵션을 익히면 컨테이너와 이미지를 좀 더 쉽게 사용할 수 있을뿐더러 도커를 이용한 개발이 수월해집니다. 도커의 구조 도커는 /usr/bin/docker 에 위치한 파일을 통해 사용되고 있습니다. 컨테이너와 이미지를 다루는 명령어는 /usr/bin/docker 에서 실행되지만 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다. docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다...
2023.12.07 -
ADD vs COPY Copy는 로컬 디렉터리에서 읽어 들인 컨텍스트로부터 이미지에 파일을 복사하는 역할을 합니다. 사용하는 형식은 ADD와 같습니다. 하지만 COPY는 로컬의 파일만 이미지에 추가할 수 있지만 ADD는 외부 URL 및 tar 파일에서도 파일을 추가할 수 있다는 점에서 다릅니다. 즉 COPY 기능이 ADD에 포함되는 것 입니다. 그러나 ADD를 사용하는 것은 그다지 권장하지 않습니다. ADD로 URL이나 tar 파일을 추가할 경우 이미지에 정확히 어떤 파일이 추가될지 알 수 없지만, COPY는 로컬 컨텍스트로부터 파일을 직접 추가하기 때문에 빌드 시점에서도 어떤 파일이 추가될지 명확합니다. ENTRYPOINT vs CMD CMD는 컨테이너가 시작될 때 실행할 명령어를 설정합니다. 이는 d..
5. Dockerfile 명령어ADD vs COPY Copy는 로컬 디렉터리에서 읽어 들인 컨텍스트로부터 이미지에 파일을 복사하는 역할을 합니다. 사용하는 형식은 ADD와 같습니다. 하지만 COPY는 로컬의 파일만 이미지에 추가할 수 있지만 ADD는 외부 URL 및 tar 파일에서도 파일을 추가할 수 있다는 점에서 다릅니다. 즉 COPY 기능이 ADD에 포함되는 것 입니다. 그러나 ADD를 사용하는 것은 그다지 권장하지 않습니다. ADD로 URL이나 tar 파일을 추가할 경우 이미지에 정확히 어떤 파일이 추가될지 알 수 없지만, COPY는 로컬 컨텍스트로부터 파일을 직접 추가하기 때문에 빌드 시점에서도 어떤 파일이 추가될지 명확합니다. ENTRYPOINT vs CMD CMD는 컨테이너가 시작될 때 실행할 명령어를 설정합니다. 이는 d..
2023.12.02 -
이미지 생성 3장에서 Dockerfile이 생성되는 과정을 확인해볼게요. (test.html, Dockerfile 위치는 예로 ./) [1. 빌드 컨텍스트] || || V docker build -t mybuild:0.0 ./ --------> FROM ubuntu ~~ ---------> myapp:0.0 (4. 새로운 이미지) (2. 디렉터리: ./) RUN apt-get update (3. 도커 이미지) 이미지 빌드를 시작하면 도커는 가장 먼저 빌드 컨텍스트를 읽어 들입니다. 빌드 컨텍스트는 이미지를 생성하는 데 필요한 각종 파일, 소스코드, 메타데이터 등을 담고 있는 디렉터리를 의미하며, Dockerfile이 위치한 디렉터리가 빌드 컨텍스트가 됩니다. 빌드 컨텍스느는 DockerFile에서 빌드될..
4. Dockerfile 빌드이미지 생성 3장에서 Dockerfile이 생성되는 과정을 확인해볼게요. (test.html, Dockerfile 위치는 예로 ./) [1. 빌드 컨텍스트] || || V docker build -t mybuild:0.0 ./ --------> FROM ubuntu ~~ ---------> myapp:0.0 (4. 새로운 이미지) (2. 디렉터리: ./) RUN apt-get update (3. 도커 이미지) 이미지 빌드를 시작하면 도커는 가장 먼저 빌드 컨텍스트를 읽어 들입니다. 빌드 컨텍스트는 이미지를 생성하는 데 필요한 각종 파일, 소스코드, 메타데이터 등을 담고 있는 디렉터리를 의미하며, Dockerfile이 위치한 디렉터리가 빌드 컨텍스트가 됩니다. 빌드 컨텍스느는 DockerFile에서 빌드될..
2023.11.30 -
도커 이미지 생성 사용자만의 이미지를 직접 생성하는 실습을 해보겠습니다. 이미지로 만들 컨테이너를 생성하고, 컨테이너 내부에 first라는 이름의 파일을 하나 생성해 기존의 이미지로부터 변경사항을 만듭니다. docker commit 명령어를 입력해 컨테이너를 이미지로 만듭니다. 위에서는 이미지의 이름을 commit_test, 태그를 first로 설정했습니다. -a 옵션은 author을 나타내고 이미지의 작성자를 나타내는 메타데이터를 이미지에 포함시킵니다. commit_test:first 이미지의 작성자 데이터는 "alicek106"으로 설정됩니다. commit_test 이름에 first라는 태그로 이미지가 생성되었습니다. 이번에는 commit_test:first 이미지로 새로운 이미지를 생성해 봅시다. ..
3. 도커 이미지도커 이미지 생성 사용자만의 이미지를 직접 생성하는 실습을 해보겠습니다. 이미지로 만들 컨테이너를 생성하고, 컨테이너 내부에 first라는 이름의 파일을 하나 생성해 기존의 이미지로부터 변경사항을 만듭니다. docker commit 명령어를 입력해 컨테이너를 이미지로 만듭니다. 위에서는 이미지의 이름을 commit_test, 태그를 first로 설정했습니다. -a 옵션은 author을 나타내고 이미지의 작성자를 나타내는 메타데이터를 이미지에 포함시킵니다. commit_test:first 이미지의 작성자 데이터는 "alicek106"으로 설정됩니다. commit_test 이름에 first라는 태그로 이미지가 생성되었습니다. 이번에는 commit_test:first 이미지로 새로운 이미지를 생성해 봅시다. ..
2023.11.29 -
도커 볼륨 : 도커 이미지는 어떠한 경우로도 변경되지 않으며, 컨테이너 계층에 원래 이미지에서 변경된 파일시스템 등을 저장합니다. 이미지에 mysql을 실행하는 데 필요한 애플리케이션 파일이 들어있다면 컨테이너 계층에는 로그인 정보나 게시글 등과 같이 데이터베이스를 운용하면서 쌓이는 데이터가 저장됩니다. 그러나 mysql 컨테이너를 삭제하면 컨테이너 계층에 저장돼 있던 데이터베이스의 정보도 삭제된다는 점인데, 도커의 컨테이너는 생성과 삭제가 매우 쉽습니다. 이를 방지하기 위해 컨테이너의 데이터를 영속적 데이터로 활용할 수 있는 방법이 몇 가지 있는데, 가장 활용하기 쉬운 방법이 바로 볼륨을 활용하는 것입니다. 방법이 여러 가지 있는데 알아서 알아보아요. 1. 호스트 볼륨 공유 mysql 데이터베이스 컨테..
2. 도커 볼륨 & 도커 네트워크도커 볼륨 : 도커 이미지는 어떠한 경우로도 변경되지 않으며, 컨테이너 계층에 원래 이미지에서 변경된 파일시스템 등을 저장합니다. 이미지에 mysql을 실행하는 데 필요한 애플리케이션 파일이 들어있다면 컨테이너 계층에는 로그인 정보나 게시글 등과 같이 데이터베이스를 운용하면서 쌓이는 데이터가 저장됩니다. 그러나 mysql 컨테이너를 삭제하면 컨테이너 계층에 저장돼 있던 데이터베이스의 정보도 삭제된다는 점인데, 도커의 컨테이너는 생성과 삭제가 매우 쉽습니다. 이를 방지하기 위해 컨테이너의 데이터를 영속적 데이터로 활용할 수 있는 방법이 몇 가지 있는데, 가장 활용하기 쉬운 방법이 바로 볼륨을 활용하는 것입니다. 방법이 여러 가지 있는데 알아서 알아보아요. 1. 호스트 볼륨 공유 mysql 데이터베이스 컨테..
2023.11.28