본문 바로가기
728x90

42Seoul22

Dockerfiles이란? [42 inception 과제 개념 9] 이제 도커 이미지를 Dockerfile을 이용해 만들어보겠습니다.이전에 도커 이미지 게시글에서 잠깐 다뤘던 그림을 가져오겠습니다.도커파일의 특징👨🏻‍💻도커파일이란 도커 이미지를 만들기 위한 설계도입니다. 도커 이미지를 빌드하려면 해당 어플리케이션의 콘텐츠들을 도커파일에 복사해야만 합니다.👨🏻‍💻도커파일은 반드시 Dockerfile이라는 파일명을 가져야합니다.(대소문자 중요)👨🏻‍💻도커 파일에서 하나의 명령은 하나의 layer를 생성합니다.도커 파일의 문법👨🏻‍💻도커 파일에서 있는 모든 대문자는 다 Dockerfile의 문법입니다.👨🏻‍💻모든 도커파일의 첫번째 줄은 기반 이미지(base image)를 가져오는 것으로 시작합니다.첫번째 줄은 이 이미지의 기반 이미지가 무엇인지에 대해서 적어주는 것 입니다.예.. 2023. 6. 24.
docker compose를 사용한 네트워크 [42 inception 과제 개념 8] docker compose를 사용한 네트워크https://docs.docker.com/compose/networking/ Networking in ComposeHow Docker Compose sets up networking between containersdocs.docker.com Docker Compose에서는 network_mode를 이용하여 네트워크를 정할 수 있습니다. 그리고 특히 여러 네트워크를 생성하여 서비스에 여러 네트워크를 적용하는 것도 가능하다는 장점이 있습니다.default 네트워크Docker Compose에서 네트워크를 정의하는 것도 가능하지만, Docker Compose와 별개로 Docker Engine으로 생성한 네트워크를 이용하는 것도 가능합니다. 아무런 설정을 해주지 않으.. 2023. 6. 24.
docker compose 명령어 [42 inception 과제 개념 7] docker compose 실행하기Docker Compose는 기본적으로 커맨드가 실행하는 디렉토리에 있는 docker-compose.yml 또는 docker-compose.yaml를 설정 파일로 사용합니다.docker-compose -f 설정파일만약 실행 경로에 docker-compose.yml 이 아닌 다른 이름이나 경로의 파일을 Docker Compose 설정 파일로 사용하고 싶다면 -f 옵션으로 명시를 해줍니다. (예시 : docker-compose -f mongo.yaml up)-f 옵션은 여러 개의 설정 파일을 사용할 때도 사용할 수 있습니다. 이 때는 나중에 오는 설정이 앞에 오는 설정보다 우선하게 됩니다. (예시 : docker-compose -f mongo.yaml -f docketest.. 2023. 6. 24.
docker-compose 란 무엇인가? [42 inception 과제 개념 6] 도커 컴포즈가 등장하게 된 배경도커파일을 관리하는게 도거 컴포즈인데, 설명의 편의를 위해 도커파일보다, 도커 컴포즈를 먼저 설명하도록 하겠습니다.지금까지 위의 게시물들을 순서대로 보셨다면 컨테이너가 무엇인지 알고 계실겁니다.이미지를 실행중인 환경이 컨테이너이고 하나의 이미지를 이용해서 여러개의 컨테이너를 만들어 낼 수 있었습니다.이제 많은 이미지가 등장하고 여러개의 컨테이너를 만들어야 하는 서비스가 등장함에 따라서, 한꺼번에 컨테이너를 관리해주는 것의 필요성을 느끼게 되었습니다. 또 추가적으로 늘 네트워크 설정을 해서 컨테이너간 통신을 하는 것에 불편함을 느낀 사람들은 그것들을 한번에 해주는 툴을 만들기 시작합니다.저희가 mongo 이미지를 이용해서 컨테이너를 실행하는 예를 들어 보겠습니다.docker .. 2023. 6. 24.
도커 네트워크란 [42 inception 과제 개념 5] Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능합니다.하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능해집니다.동일한 도커 네트워크에 위치하면 localhost의 port없이 컨테이너끼리 서로 통신이 가능해집니다.네트워크 조회docker network lsdocker network ls : 커맨드를 사용하면 현재 생성되어 있는 Docker 네트워크 목록을 조회할 수 있습니다.docker network ls 명령을 사용하면 bridge, host, none 세 종류 네트워크를 볼 수 있습니다.시작하자마자 나오는 네트워크는 Docker 데몬(daemon)이 실행되면서 디폴트로 생성되는 .. 2023. 6. 24.
Docker 명령어, 포트번호, 컨테이너 디버깅 [42 inception 과제 개념 4] 이번 게시물에서는 도커 이미지 이용해서 컨테이너로 띄우는데 사용 되는 명령어에 대해 정리해보고자 합니다.시작 하기 전 잠깐 복습을 하자면 도커 이미지는 도커 컨테이너를 만들기 위한 틀이고, 이미지를 이용해서 컨테이너를 실행할 수 있습니다.그럼 도커 명령어들에 대해서 정리하겠습니다.docker 명령어docker images 내 컴퓨터에 있는 모든 이미지를 확인할 수 있는 명령이 명령을 사용해보면 어떤 이미지가 있는지 자세한 정보를 보여줍니다.docker run 이미지이름 이전에 말했든 컨테이너는 이미지의 실행환경입니다. 이렇게 run을 해보면, 이미지가 컨테이너 내부에서 실행이 됩니다.docker run -d : 컨테이너를 detatch(분리) 모드로 실행합니다. docker run하고 있는 상태에서 ct.. 2023. 6. 24.
Docker, Docker Engine ( Client, Daemon) [42 inception 과제 개념 3] 도커는 리눅스 기술인 컨테이너 기술에 여러 기능을 추가한 오픈소스 프로젝트입니다. 도커의 기술적 특징은 컨테이너의 기술적 특징에 몇가지 기능을 추가한 것입니다. 도커엔진Docker Engine은 사용자가 컨테이너를 쉽게 사용하고 관리할 수 있게 해줍니다.도커 엔진은 여러가지 기능을 제공하는데 대표적으로 컨테이너의 라이프 사이클 관리, 이미지 관리, 볼륨 관리, 네트워크 관리 등 컨테이너를 관리하는 기능을 제공합니다.위의 그림에서 dockerd 부분에 있는 사각형 박스에 있는 Docker CLI/AP, LogsMgmt.. 등을 도커 프로젝트라고 부릅니다.도커 프로젝트는 컨테이너를 어떻게 사용할 것인가에 따른 목적에 따라 분리되어 있습니다.Docker를 이용하기 위해 일반적으로 docker라는 명령어를 이용.. 2023. 6. 24.
도커 이미지와 컨테이너 레포지토리 [42 inception 과제 개념 2] 도커 이미지와 도커 컨테이너많은 사람들은 이 도커 이미지와 도커 컨테이너 용어를 혼용해서 사용하고 있습니다.사실 이 둘 사이에는 큰 차이점이 존재합니다. 다만, 쉬운 이해를 위해 설명할 때도 혼용을 해서 많이 사용하였습니다.💡쉽게 이해하면 이미지는 컨테이너를 저장한 설계도 입니다.이미지는 컨테이너를 저장하고 이동하는데 주로 사용 됩니다.이미지를 실행하면 컨테이너가 실행이 됩니다.👨🏻‍💻이미지란, 실제 어플리케이션 패키지를 의미합니다. 이 패키지 내부에는 설정과 종속성 등 모든 것들이 들어있습니다. 또한 이미지는 이동 가능한 아티팩트입니다. 한마디로 말하면 완성품 패키지라고 보면 됩니다.로컬 컴퓨터에서 필요한 이미지를 가져오고 이미지를 실행시킵니다. 그러면 이미지 내부 어플리케이션이 컨테이너 환경을 생성하.. 2023. 6. 24.
도커와 가상머신 그리고 컨테이너 [42 inception 과제 개념 1] 도커란 무엇인가?도커에 대한 쉽게 비유적으로 설명한 영상 2가지 먼저 첨부하겠습니다.짧은 영상긴 영상공식 사이트Docker는 애플리케이션 개발, 배송 및 실행을 위한 개방형 플랫폼입니다.Docker를 사용하면 애플리케이션을 인프라에서 분리하여 소프트웨어를 신속하게 제공할 수 있습니다. Docker를 사용하면 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다.Docker docs 사이트에 있는 docker의 설명입니다.이것만 보면 무슨말인지 이해하기 어렵습니다. 당연합니다. 배경지식부터 차근차근 쌓아갑시다.일단 도커에 대해서 말하려면 필요한 가상화 기술에 대해서 먼저 이야기하고, 가상화 기술인 가상머신과 컨테이너에 대해서 이야기해보겠습니다.가상화 기술의 등장배경우리가 어떤 프로그램을.. 2023. 6. 24.
728x90