본문 바로가기

전체 글178

2. 도커에서 ubuntu 이미지 실행(sleep, exec) $ docker run ubuntu 위 명령어를 입력하면 ubuntu 이미지의 인스턴스를 실행하고 즉시 종료된다. docker ps 로 실행중인 컨테이너 목록을 확인해도 실행되고 있는 컨테이너가 없다. docker ps -a 로 멈춘 컨테이너까지 포함한 모든 컨테이너를 확인해 보면 새 컨테이너가 종료된 상태임을 확인할 수 있다. 왜 이런걸까? 가상머신과는 다르게 컨테이너의 목적은 운영체제 호스팅이 아니라 특정 작업이나 프로세스를 처리하는것이다. 컨테이너는 내부 프로세스가 실행되는 동안만 존재하며, 작업이 끝나면 컨테이너는 종료된다. ubuntu 이미지로 아무 작업도 하지않고 실행만 하니까 바로 종료되는 것이다. ubuntu의 경우와 같이 실행되는 서비스가 없는 이미지라면 sleep 명령어를 통해 dock.. 2023. 1. 19.
1. 기본적인 docker 명령어 1. 컨테이너 실행 $ docker run docker run 명령어는 이미지로 부터 컨테이너를 실행할 때 사용한다. docker run nginx 명령어 실행 시 docker 호스트에 nginx 애플리케이션 인스턴스가 있다면 해당 인스턴스를 실행. 호스트에 이미지가 없으면 docker hub를 이용해 이미지를 pull 한다. pull 작업은 한번만 처리되기 때문에 명령어를 여러 번 실행해도 같은 이미지를 재사용한다. 2. 실행되고있는 모든 컨테이너 조회 $ docker ps docker ps 명령어는 실행되는 모든 컨테이너의 기본정보를 나열한다. 각 컨테이너는 docker에 의해 자동으로 생성된 컨테이너ID와 이름(NAME)을 갖는다. $ docker ps -a -a 옵션을 사용하면 이미 멈췄거나 종료.. 2023. 1. 19.
우분투에 도커 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 도커 공식문서 우분투 설치 관련 페이지로 들어간다. OS 요구사항 - 위 버전에서만 설치할 수 있다. 0. 우분투 버전 확인하기 $ cat /etc/*release* 명령어를 입력하면 현재 우분투의 버전을 확인할 수 있다. 중간에 VERSION= ... 부분을 보면 Jammy Jellyfish 라고 나와있는걸 확인할 수 있다. 1. 기존에 오래된 docker 버전이 있다면 삭제하기 2. 쉘 스크립트 방식으로 docker 설치하기 sh파일을 다운받고 실행하면 도커 설치가 시작된다. 1~2분 정도 걸릴 수 있다. 3. 설치된 도커 버전 확인.. 2023. 1. 18.
도커 작동원리 오늘날 애플리케이션은 컨테이너화된 버전이 있는것들이 많다. 많은 기관에서는 자사 제품을 컨테이너화 해서 docker Hub라는 퍼블릭 docker 보관소에 공개하고있다. OS, DB, 서비스, 툴 등을 찾을 수 있고 이미지를 찾아 호스트에 docker를 설치하면 docker run 명령어에 이미지 이름만 붙이면 애플리케이션을 손쉽게 실행할 수 있다. 이미지 vs 컨테이너 이미지는 VM템플릿과 같은 패키지 또는 템플릿으로 컨테이너를 만드는데 사용되며 컨테이너는 서로 분리된 이미지 인스턴스가 실행되는 곳으로 각각의 환경과 프로세스들을 지니고 있다. 만약 찾는 이미지가 없다면 이미지를 직접 만들어 docker Hub에 올려서 다른 사람들과 공유할 수도 있다. 과거에는 개발자들이 애플리케이션을 직접 개발하고 운.. 2023. 1. 18.
도커 컨테이너 vs 가상머신 먼저 docker 도식이다. 제일 아래에 하드웨어 인프라가 있고 그 위에 운영체제가 있고 그 위에 docker가 설치되어 컨테이너를 관리한다. 하이퍼바이저가 하드웨어 위에 있고 그 위에 가상머신이 있다. 각각의 가상머신에는 각각의 운영체제와 의존성,애플리케이션이 설치되어있다. 이러한 구조는 기반 리소스를 많이 사용하는데 여러개의 가상운영체제와 커널이 실행되기 때문이다. docker 컨테이너는 가볍고 MB단위의 용량만을 차지하므로 몇 초만에 docker 컨테이너를 부트할수 있지만 가상머신은 무거워서 용량을 많이 차지하고 그 단위가 GB에 달하고 운영체제 전체를 부트해야하기 때문에 시간이 많이 걸린다. 그리고 한 가지 중요한 점은 docker가 완전히 분리되지 못한다는 점이다. 이는 컨테이너 간 공유하는 커.. 2023. 1. 18.
도커, 컨테이너 컴포넌트를 실행할 때, 각자의 의존성과 라이브러리를 갖춘 분리된 컨테이너를 활용해 같은 가상머신과 운영체제에서 환경과 컨테이너를 분리할 수 있다. 그 덕에 docker 설정을 한 번만 하면 개발자들이 개발을 시작할 때, docker 실행 명령어 하나면 운영체제에 상관없이 진행할 수 있다. 각자의 시스템에 docker만 설치되어 있으면 된다. 컨테이너 완전히 분리된 환경으로, 각자의 프로세스, 서비스, 네트워크 인터페이스, 마운트를 가상 머신처럼 가지고 있지만 동일한 운영체제 커널을 공유한다. 운영체제의 기본 개념 Ubuntu, Fedora, SUSE, CentOS 같은 운영체제는 운영체제 커널과 소프트웨어 두 가지로 구성되어 있다. 운영체제 커널은 기반 하드웨어와 상호작용하는 역할을 하며 Linux인 운.. 2023. 1. 18.