본문으로 건너뛰기
피드

애플 컨테이너에 ‘맥 안의 지속형 리눅스 머신’이 들어옴

devops 약 8분
vote
0
댓글
북마크

애플의 container 도구에 컨테이너 머신이라는 개념이 추가돼, 맥에서 지속형 리눅스 환경을 빠르게 띄우고 쓸 수 있게 됨. 일반 컨테이너가 앱 단위라면, 컨테이너 머신은 init 시스템과 서비스, 홈 디렉터리 공유까지 포함한 리눅스 개발 환경에 가까움.

  • 1

    컨테이너 머신은 앱이 아니라 리눅스 환경 자체를 모델링함

  • 2

    맥의 사용자명과 홈 디렉터리가 리눅스 환경에 자동 매핑됨

  • 3

    systemd가 들어간 이미지라면 PostgreSQL 같은 장기 실행 서비스를 테스트할 수 있음

  • 4

    Alpine, Ubuntu, Debian 등 배포판별 개발 환경을 따로 만들 수 있음

  • 5

    CPU, 메모리, 홈 마운트 권한 같은 설정을 디스크에 저장하고 재시작 후 적용할 수 있음

  • 애플의 container 도구가 ‘컨테이너 머신’이라는 리눅스 개발 환경 모델을 제공함

    • 일반 컨테이너가 앱 하나를 실행하는 데 초점이 있다면, 컨테이너 머신은 리눅스 환경 자체를 띄우는 쪽임
    • 빠르고 가볍고 지속형이며, 표준 OCI 이미지로 만들고 공유할 수 있음
    • 이미지의 init 시스템을 실행할 수 있어서 장기 실행 서비스나 프로세스 슈퍼바이저 기반 테스트도 가능함
  • 맥에서 편집하고, 리눅스 안에서 빌드하는 흐름을 노골적으로 겨냥함

    • 맥의 $HOME에 있는 저장소가 컨테이너 머신 안에서는 /Users/<username> 또는 리눅스 홈 경로로 마운트됨
    • 맥의 에디터나 IDE로 코드를 고치고, 빌드와 실행은 리눅스 환경 안에서 돌리는 식임
    • 빌드 산출물을 다시 복사하지 않아도 맥 네이티브 프로파일러, 브라우저, 스크린샷 도구, GUI 디버거가 같은 파일을 볼 수 있음
  • 사용자 계정 매핑도 개발자 친화적으로 잡혀 있음

    • container machine run -n dev whoami를 실행하면 root가 아니라 호스트의 사용자명이 나옴
    • 컨테이너 머신을 실행하면 맥 계정과 같은 사용자로 셸에 들어가고, 홈 디렉터리와 dotfile도 공유됨
    • ‘컨테이너 안이라 권한 꼬임’ 같은 로컬 개발 특유의 귀찮음을 줄이려는 설계로 보임
  • 배포판별 리눅스 테스트 환경을 여러 개 만들 수 있음

    • container machine create alpine:latest --name dev처럼 Alpine 기반 환경을 만들 수 있음
    • Ubuntu, Debian 같은 타깃 배포판마다 컨테이너 머신을 따로 만들고 같은 홈 디렉터리와 설정 파일을 공유할 수 있음
    • 특정 배포판에서만 깨지는 빌드나 패키지 의존성 문제를 로컬에서 바로 확인하기 좋아짐
  • 실행 명령은 꽤 단순함

    • container machine run -n dev는 대화형 셸을 열고, 컨테이너 머신이 꺼져 있으면 먼저 부팅함
    • container machine run -n dev uname -a처럼 단일 명령만 실행하고 빠져나올 수도 있음
    • 기본 머신을 container machine set-default dev로 지정하면 -n 플래그 없이 container machine run, container machine ls, container machine inspect dev 같은 명령을 쓸 수 있음
    • container machinem 별칭도 있어서 m ls, m run처럼 짧게 호출 가능함

💡

> 맥에서 코드 편집 도구를 그대로 쓰면서 실행 환경만 리눅스로 맞추고 싶다면 이 모델이 꽤 잘 맞음. 특히 배포 타깃이 리눅스인데 개발 장비는 맥인 팀에 실용적임.

  • 리눅스 서비스 테스트도 현실적인 수준까지 들어옴

    • systemd가 설치된 이미지라면 systemctl start postgresql 같은 명령으로 데이터베이스나 필요한 서비스를 띄울 수 있음
    • 컨테이너 하나에 프로세스 하나만 넣는 전통적인 앱 컨테이너 감각과는 조금 다름
    • 로컬에서 ‘작은 리눅스 개발 머신’을 켜놓고 테스트하는 방식에 가까움
  • 리소스와 마운트 설정도 바꿀 수 있음

    • container machine set -n dev cpus=4 memory=8G처럼 CPU와 메모리를 조정할 수 있음
    • 변경 사항은 디스크 설정에 저장되고, 다음 stop/start 이후 적용됨
    • 메모리 기본값은 호스트 메모리의 절반이고, 홈 마운트는 기본 읽기쓰기(rw), 읽기전용(ro), 없음(none) 중 고를 수 있음
  • 커스텀 이미지 조건은 /sbin/init이 있는 리눅스 이미지임

    • 문서 예시는 Ubuntu 24.04 기반 이미지에 dbus, systemd, openssh-server, 네트워크 도구, curl, wget, vim-tiny, man, sudo 등을 설치함
    • systemctl set-default multi-user.target로 기본 타깃을 잡고, 컨테이너 환경에서 불필요하거나 문제될 수 있는 일부 systemd 유닛을 마스킹하거나 비활성화함
    • 빌드는 container build -t local/ubuntu-machine:latest ., 생성은 container machine create local/ubuntu-machine:latest --name ubuntu 흐름임
  • 첫 부팅 때 사용자 프로비저닝도 자동화돼 있음

    • 기본적으로 container가 내장 setup script를 실행해 호스트와 맞는 사용자를 만들어줌
    • 직접 제어하고 싶으면 이미지에 /etc/machine/create-user.sh 실행 파일을 넣으면 됨
    • 이 스크립트는 최초 부팅 때 root로 한 번 실행되고, CONTAINER_UID, CONTAINER_GID, CONTAINER_HOME, CONTAINER_USER, CONTAINER_MACHINE_ID 같은 변수를 받음

기술 맥락

  • 여기서 애플이 고른 방향은 ‘앱 컨테이너’가 아니라 ‘개발용 리눅스 머신’이에요. 맥에서 코드를 편집하는 경험은 유지하되, 실제 빌드와 실행은 리눅스에 붙이고 싶다는 문제가 있었기 때문이에요.

  • 홈 디렉터리와 사용자명을 자동 매핑하는 것도 꽤 중요한 선택이에요. 로컬 개발에서 권한, 경로, dotfile이 엇갈리면 생산성이 바로 떨어지거든요. 같은 파일을 맥 도구와 리눅스 환경이 동시에 보게 만들면 복사 단계가 사라져요.

  • systemd를 허용하는 건 단순 컨테이너보다 한 단계 더 무거운 대신, 테스트 현실성이 올라가요. 데이터베이스나 백그라운드 서비스를 실제 배포 환경과 비슷하게 띄워야 하는 스택에서는 프로세스 하나만 실행하는 모델이 답답할 수 있거든요.

  • OCI 이미지를 기반으로 한 것도 실용적인 선택이에요. 완전히 새로운 이미지 포맷을 만들면 생태계와 멀어지는데, 기존 컨테이너 빌드 흐름을 유지하면 팀이 이미 가진 Dockerfile이나 배포판 기반 이미지를 활용하기 쉬워요.

이건 Docker Desktop 대체 한 줄 요약으로 끝낼 물건이 아니라, 맥 개발자의 ‘로컬은 맥, 실행은 리눅스’ 루틴을 애플식으로 정리하려는 시도에 가까움. 홈 디렉터리 공유와 systemd 지원이 같이 들어가면, 단순 빌드 컨테이너보다 훨씬 실제 개발 머신처럼 굴릴 수 있음.

댓글

댓글

댓글을 불러오는 중...

devops

시스코, AI 클라우드 제어 플랫폼으로 네트워크·보안·운영을 한판에 묶으려는 중

시스코가 Cisco Cloud Control, 확장된 FlexPod AI, 랜섬웨어 대응 플레이북 등 AI 중심 인프라와 보안 제품을 발표했다. 핵심은 네트워킹, 보안, 관측성, AI 에이전트 관리를 하나의 클라우드 제어면으로 묶어 대기업과 서비스 제공업체 운영을 단순화하려는 방향이다. 다만 AI 주문이 소수 하이퍼스케일러에 의존한다는 투자 리스크는 여전히 남아 있다.

devops

베르다, 슈퍼마이크로 블랙웰 랙으로 지속가능 AI 클라우드 구축

유럽 AI 클라우드 업체 베르다가 슈퍼마이크로의 엔비디아 블랙웰 기반 액체 냉각 랙 스케일 시스템을 도입해 풀스택 AI 클라우드 인프라를 구축한다. 프런티어 모델 개발사, AI 네이티브 스타트업, 규제 산업 기업을 대상으로 고성능·보안·에너지 효율·컴플라이언스를 갖춘 AI 컴퓨팅을 제공하려는 사례다.

devops

AI 3강 외치는데 공공 클라우드 이용률은 아직 10%대

정부가 2026년까지 신규 공공 정보 시스템의 70% 이상을 클라우드 네이티브로 전환하겠다는 목표를 세웠지만, 실제 공공 부문 민간 클라우드 이용률은 10%대에 머물고 있다. 예산 체계, 망 분리, 클라우드 보안인증, 사고 책임 부담이 전환 속도를 늦추고 있으며, AI 경쟁력 확보를 위해 평가와 예산 제도 개편이 필요하다는 지적이 나온다.

devops

ETRI, 국내외 AI 반도체 클라우드 100개를 단일 API로 묶는 플랫폼 추진

ETRI가 K클라우드 프로젝트와 연계해 GPU·NPU 기반 AI 반도체 클라우드 50~100개를 단일 API로 통합 관리하는 클라우드 관리 플랫폼을 개발한다. CSP마다 API와 사용 방식이 달라 생기는 장벽을 줄이고, 국산 AI 반도체와 여러 클라우드를 하나의 자원처럼 쓰게 만드는 게 목표야.

devops

베스핀글로벌, AI 서비스 운영용 클라우드 데이터 엔지니어 과정 5기 모집

베스핀글로벌이 서울시 청년취업사관학교 새싹과 함께 AI·클라우드 인재 양성 과정을 다시 연다. 파이썬·리눅스부터 AWS 인프라, 데이터 파이프라인, 머신러닝 운영까지 이어지는 과정이고, 우수 수료자에게는 베스핀글로벌 인턴십 기회도 제공돼.