Docker

·Docker
상황에 따라 도커 컨테이너 내부에서 도커를 실행해야 할 때가 있다.예를 들면 젠킨스 컨테이너 내부에서 도커 이미지를 빌드하고 싶은 때 도커를 실행해야 한다.도커 컨테이너 내부에서 도커를 실행하기 위한 방법으로는 2가지가 있다.도커 컨테이너 내부에 도커엔진을 설치하기 (Docker in Docker)도커 컨테이너 내부에서 호스트의 도커 데몬을 사용하기 (Docker out of Docker)1번 방법은 두 계층의 데몬이 서로 간섭하게 될 수 있고, 중복 자원할당 및 오버헤드가 발생하여 성능이 저하될 수 있어 추천되지 않는 방식이라고 한다.따라서 2번 방식을 구현하는 법을 설명하겠다.Docker out of Docker우리가 처음 도커를 설치할 때 sudo apt-get install docker-ce do..
·Docker
컨테이너와 네트워크도커 컨테이너에서는 크게 3가지의 통신이 일어날 수 있다.컨테이너와 World Wide Web의 통신컨테이너에서 로컬 호스트 머신으로 통신컨테이너 간 통신도커 컨테이너와 WWW의 통신도커 컨테이너와 World Wide Web과의 통신은 어떠한 조치를 취하지 않아도 통신이 된다.컨테이너와 로컬 호스트 머신 간의 통신컨테이너와 로컬 호스트 머신간 통신을 하기 위해서는host.docker.internal을 사용한다.이를 도메인이 필요한 곳, URL이 필요한 곳에 입력하면 호스트 머신의 IP주소로 변환된다.컨테이너간 통신컨테이너 간 통신을 하려면 docker container inspect {컨테이너 식별자}를 입력하여 컨테이너의 IP 주소를 알아내 사용할 수 있다.하지만 이 방법은 컨테이너의..
·Docker
서론 이번에 진행했던 프로젝트에서 배포를 담당했었다. 배포라고 하면 소스코드가 업데이트될때마다 자동으로 배포해주는 CI/CD 구축을 하는 것이 꽃이라고 할 수 있겠...지만, 당시의 나는 CI/CD 툴에 대해 알아보고 공부하기에는 시간이 턱없이 부족한 상황이었다. 그래서 수동 배포를 비주기적으로 하는 것이 최선이었다. 처음에는 로컬에서 docker image를 만들어 docker hub에 push하고, 그것을 EC2 서버에서 받아 컨테이너를 구동시키는 방식을 채택했었다. 물론 그런 방식으로 배포를 하려면 배포할 때마다 로컬에서 프론트와 백 코드를 빌드한 후, 각각 이미지로 만드는 과정을 거쳐야 해서, 불편한 점이 이만저만이 아니었다. 로컬에서 빌드를 다시 해야하니 하던 작업도 무조건 멈춰야 했고, doc..
·Docker
도커의 데이터에는 3가지가 있다어플리케이션 데이터이미지 안에 저장된다.읽기 전용이며 코드와 실행환경이 들어있다.이미지 빌드 완료 후에는 수정이 불가능하다.임시 앱 데이터컨테이너에 저장된다.실행중인 컨테이너에서 생성되는 데이터이다.읽기 쓰기가 가능하다.영구 앱 데이터볼륨을 사용하여 컨테이너에 저장된다.실행중인 컨테이너에서 생선되는 데이터이다.읽기 쓰기가 가능하다.볼륨볼륨은 컨테이너에 마운트된 호스트 머신의 폴더이다호스트 머신의 폴더이기 때문에 볼륨은 컨테이너가 꺼져도 데이터를 유지시켜준다.도커는 호스트 머신의 폴더와 경로를 지정한다.볼륨은 호스트 머신상 어디에 존재하는지 알기 어렵다.Anonymous Volume익명 볼륨은 컨테이너가 종료되면 사라진다.익명 볼륨을 사용하려면 Dockerfile에 VOLUM..
·Docker
이미지란?설정 명령과 코드가 포함된 공유 가능한 패키지이미지는 컨테이너의 설계도이며 컨테이너는 이미지의 실행 인스턴스이다.인스턴스화이미지를 컨테이너로 인스턴스화 하려면docker run 을 실행한다.컨테이너를 멈춤려면docker stop 을 실행한다. 이미지 만드는 법이미지를 만들기 위해서는 Dockerfile을 작성해야 한다.FROM #운영체제 레이어WORKDIR # 작업 폴더COPY # 이미지로 파일 복사RUN # 이미지 빌드시 실행해야하는 명령어EXPOSE # 공개할 포트 번호CMD [ "", "", "" ] # 컨테이너 실행 시 실행해야 하는 명령어Dockerfile을 작성한 후 터미널에 docker build 를 입력한다.From 운영체제 레이어를 추가한다.WORKDIR 작업할 폴더를..
·Docker
도커(Docker)란 무엇일까요?도커(Docker)는 애플리케이션을 컨테이너라는 독립된 환경에 패키징하고 실행하여 개발, 배포 및 운영을 효율적으로 관리할 수 있도록 지원하는 플랫폼이며, 컨테이너 생성 및 관리 기술을 통칭하기도 합니다.컨테이너는 뭐죠?컨테이너(Container)는 애플리케이션 실행에 필요한 모든 것을(코드, 환경 설정, 종속성 등..) 패키징하여, 어떤 컴퓨팅 환경에서도 빠르고 신뢰성 있게 실행할 수 있도록 하는 소프트웨어의 표준 단위이자 애플리케이션 패키지라고 할 수 있습니다.그래서 왜 사용하는 건가요?컨테이너를 사용함으로써 얻는 이점은 다양하게 있으며 장점에 대해서는 후술하겠지만, 현 시점에서 우리에게 가장 와 닿는 장점은 어느 환경에서도 동일한 환경을 구축할 수 있다는 것이라고 생..
·Docker
도커는 컨테이너를 생성하고 관리하는 기술이다.컨테이너란?컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지코드를 실행할 수 있게 코드와 런타임, 라이브러리등을 패키징한 것이다.이 때 같은 컨테이너는 누가, 어디에서 실행하든 항상 동일한 결과를 낸다.컨테이너 기술은 대부분 현대 운영체제에 빌트인이 되어있거나 쉽게 설정할 수 있다. 왜 컨테이너를 사용할까?동일한 결과 보장로컬 환경에서 코드를 작성해서 정상적인 실행을 확인했는데 다른 컴퓨터에서는 런타임 버전 등 의존성이 달라 실행이 안 되는 경우가 있다.만약 실행환경이 로컬 환경과 정확히 같았다면 벌어지지 않았을 상황이다.컨테이너를 사용하면 런타임과 라이브러리 등이 코드와 함께 들어있기 때문에 항상 동일한 결과를 보장할 수..
월월월월2
'Docker' 카테고리의 글 목록