오리진 시리즈 : 도커의 탄생 노트

오리진 시리즈 : 도커의 탄생

소프트웨어 산업은 수년간 배포 문제로 씨름해 왔습니다. 애플리케이션이 개발자 머신에서는 작동하지만 환경 차이로 인해 프로덕션에서는 실패했기 때문입니다. 초기에는 기업들이 충돌을 피하기 위해 애플리케이션당 하나의 머신을 할당하는 물리적 서버에 의존했으며, 이는 비효율적인 하드웨어 활용으로 이어졌습니다. 가상화는 첫 번째 주요 돌파구로 등장하여 단일 물리적 서버가 각기 다른 운영 체제를 가진 여러 개의 독립적인 가상 머신을 호스팅할 수 있게 하여 하드웨어 비용을 크게 절감하고 효율성을 향상시켰습니다. 그러나 가상 머신은 전체 운영 체제를 복제해야 하므로 리소스 집약적이었고, 더 가벼운 격리 방법에 대한 탐색을 촉발했습니다. 이는 애플리케이션과 라이브러리를 패키징하지만 호스트 OS 커널을 공유하는 컨테이너의 개발로 이어졌으며, 이는 훨씬 더 가볍고 효율적으로 만들었습니다. Linux에는 chroot, 네임스페이스, cgroups와 같은 기존 컨테이너 기술이 있었지만, 개발자가 직접 사용하기에는 복잡했습니다. Docker는 이러한 기존 컨테이너 기술에 대한 사용자 친화적인 인터페이스를 제공함으로써 업계를 혁신했습니다. dotCloud 회사는 처음에 Platform-as-a-Service 제품의 일부로 컨테이너 도구를 개발했습니다. 개발자들은 플랫폼 자체보다 컨테이너 기술 자체에 더 많은 관심을 보였습니다. dotCloud는 이 기술을 오픈 소스화했으며, 이는 2013년에 Docker로 알려지게 되었습니다. Docker는 기본 Linux 복잡성을 추상화하여 컨테이너 사용을 단순화했습니다. 이를 통해 수백만 명의 개발자가 간단한 명령어를 통해 컨테이너에 접근할 수 있게 되었고, 컨테이너는 전문가 기능에서 주류 도구로 변모했습니다.
CdXz5zHNQW_VUP5JxfiUz.webp