도커 컨테이너 실행하기 도커 컨테이너 생명주기 도커에서 컨테이너의 생명주기는 다음과 같은 단계로 나눌 수 있다. 이미지 생성 : 컨테이너의 생명주기는 이미지로부터 시작된다. 도커 이미지는 컨테이너를 실행하는 데 필요한 파일 시스템과 애플리케이션 설정 등을 포함하고 있다. 이미지는 도커 파일(Dockerfile)을 사용해 정의되며, 도커 명령을 사용해 빌드할 수 있다. docker build: 도커 파일(Dockerfile)을 기반으로 도커 이미지를 빌드한다. docker image pull: 도커 레지스트리(도커 허브 등)에서 이미지를 가져온다. 컨테이너 시작 : 이미지를 기반으로 컨테이너를 시작한다. 컨테이너는 독립된 환경에서 애플리케이션을 실행하는 격리된 프로세스이다. 도커 명령어를 사용해 컨테이너를..
도커 이미지 삭제하기 현재 도커 허브로부터 다운받은 이미지 목록은 다음과 같다. 이미지 삭제 도커에서 이미지 삭제 명령어는 docker rmi(remove image)이다. ubuntu의 경우 현재 2가지 버전이 존재한다. 이때는 이미지 이름 대신 IMAGE ID를 입력해 삭제해준다. 설치되어 있는 docker/getting-started 이미지를 삭제하려 하는 경우 다음과 같이 문제가 발생한다. 에러 코드를 자세히 읽어보면 해당 이미지가 컨테이너로 실행중이기 때문에 삭제할 수 없다. 이런 경우 실행 중인 컨테이너를 종료시킨 후 삭제를 다시 진행해야 한다. 컨테이너 종료 컨테이너 종료 명령어는 docker stop이다. 이때 docker stop 289 같이 해당 이미지의 IMAGE ID를 작성해주면 에..
도커 컨테이너의 생애주기와 데이터 저장 도커 컨테이너는 쓰고 버리는 일회용품이다. 컨테이너는 쉽게 만들 수 있다. 컨테이너 하나를 계쏙 업데이트하며 사용하기 보다는 업데이트 되어있는 소프트웨어가 들어있는 새로운 컨테이너를 사용하는 것이 좋다. 즉, 오래된 컨테이너를 버리고 새로운 이미지로부터 새로운 컨테이너를 만들어 갈아타는 방식을 사용한다. 컨테이너를 '생성하고', '실행하고', '종료하고', '폐기한' 다음, 다시 컨테이너를 '생성하는' 일련의 과정을 컨테이너의 생애주기라 한다. 데이터 저장 컨테이너를 폐기하면 해당 컨테이너 안에서 편집했던 파일은 당연히 사라진다. 이런 일을 방지하기 위해 보통 도커가 설치된 물리적 서버(호스트)의 디스크를 마운트해 이 디스크에 데이터를 저장한다. (마운트: 디스크를..
이 글은 메타코딩 님의 유튜브 강의를 학습한 내용을 정리하여 작성합니다. 도커 작동 원리 도커의 구조 운영체제를 통해 하드웨어를 제어할 수 있다. 도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을 인용하면 다음과 같다: 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다. 도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다. 도커는 c..
도커, 도커허브설치 및 도커허브 회원가입 도커를 사용하려면 도커는 기본적으로 리눅스용이지만 윈도우와 macOS에서도 사용할 수 있다. 리눅스 컴퓨터에서 도커 사용하기 가상 머신이나 렌탈 환경에 도커를 설치하고 윈도우나 macOS를 통해 사용하기 윈도우용/macOS용 도커 사용하기 윈도우와 macOS에서는 리눅스 운영체제가 들어있는 패키지(도커 데스크톱)를 사용한다. 리눅스 컴퓨터에 도커를 설치하려면 도커 엔진만 있으면 되지만 윈도우나 macOS에서는 리눅스 운영체제 등의 실행환경이 추가로 필요하기 때문에 이들을 함께 패키지로 묶어 배포한다. 윈도우용/macOS용이긴 하지만 완전한 윈도우용/macOS용 소프트웨어는 아니며 윈도우나 macOS에 사용자에게는 보이지 않는 가상의 리눅스 환경을 만들고 이 환경에..
도커가 등장한 이유 도커(Docker)는 가상화 기술의 한 종류로서, 가상 머신(VM) 기반의 가상화보다 가볍고 효율적인 컨테이너 가상화를 제공한다. 도커가 등장한 이유는 다음과 같은 이유들이 있다. 개발과 운영의 간극 : 개발자는 애플리케이션을 개발할 때는 로컬 환경에서 실행하고 테스트하며, 운영팀은 실제 서버 환경에서 애플리케이션을 배포하고 운영해야 한다. 이러한 개발과 운영의 간극은 환경의 차이로 인해 문제가 발생할 수 있는 요인이다. 환경 일관성의 필요성 :애플리케이션을 다양한 환경(로컬, 개발, 테스트, 운영 등)에서 실행해야 하는데, 각 환경마다 필요한 소프트웨어, 라이브러리, 설정 들이 다를 수 있다. 이로인해 환경 간의 일관성을 유지하고 애플리케이션을 이식하기 어렵게 만들 수 있다. 리소스..