Skip to main content

Command Palette

Search for a command to run...

도커 입문하기&설치

Updated
2 min read
도커 입문하기&설치

도커란?

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼인데, 여기서 컨테이너란 실행환경을 독립적으로 운용할 수 있도록 격리해주는 기술을 말한다. 실행환경 격리라면 사실 가상머신으로도 가능한 것이지만, 멀쩡한 가상머신을 냅두고도 도커를 쓰는 이유가 있다.

도커 vs 가상머신

사실 가상머신은 몇 가지 문제가 있을 수 있는데

가상머신의 단점들

오버헤드 문제가 있을 수 있다. 메모리, CPU, 저장공간 등 리소스를 낭비하게 될 수 있다. 여러 가상머신을 돌린다고 치면 매번 가상머신 하나당 운영체제가 매번 새로 설치되어야는 것인데, 즉, 낭비되는 공간이 발생하게 된다는 것이다. 공유할 수 있는 config 파일이 존재하지 않아서, 매번 새로 똑같이 세팅하기 어렵다는 것도 단점이다.

도커

도커를 사용하면 하나의 컴퓨터에 여러 가상머신을 설치하고 중복된 운영체제를 설치할 필요가 없다. 또한 구성 파일과 이미지를 사용해서 배포하고자 하는 환경과 같은 환경을 배포하기가 쉽다는 것이다.

도커 실습

도커 설치하기

아치리눅스 기반 리눅스에 설치하려면

sudo pacman -S docker

명령어로 도커를 설치할 수 있다. 아치 기반이 아니더라도 리눅스에서는 별다른 추가 설정 없이 쉽게 다운로드하고 사용할 수 있다.

다음으로 실행하기 위해

sudo systemctl status docker # status 확인해서 돌고 있지 않으면
sudo systemctl enable docker.service
sudo systemctl start docker.service

데몬이 백그라운드에서 돌아가도록 활성화를 시켜놓을 수 있다.

sudo명령 없이 쓰고싶다면

sudo usermod -aG docker $USER

사용자를 도커 그룹에 추가한다. 로그아웃했다가 들어와야됨

도커 명령어

아래는 아주 기초적인 명령어들인데, 이것들은 추후에 더 다루도록 하겠다.

docker build # 빌드
docker run # 실행
docker ps # 컨테이너 목록
29 views

More from this blog

락프리 데이터 구조와 알고리즘

여기서는 락프리 데이터 구조를 설명한다. 락프리(lock-free) 란 배타락을 이용하지 않고 처리를 수행하는 데이터 구조 및 그에 대한 조작 알고리즘을 총칭한다. 왜 락프리인가? 전통적인 동시성 제어 방법인 뮤텍스나 세마포어는 여러 문제점을 가지고 있다: 성능 저하: 락 경합(lock contention)으로 인한 대기 시간 데드락: 여러 스레드가 서로의 락을 기다리는 상황 우선순위 역전: 낮은 우선순위 스레드가 높은 우선순위 스레드를 ...

Jul 27, 20257 min read119

소프트웨어 트랜잭셔널 메모리

소프트웨어 트랜잭셔널 메모리 동시성 프로그래밍에서 공유 자원에 대한 안전한 접근은 항상 중요한 과제다. 전통적으로 뮤텍스 락과 같은 비관적 락(Negative Lock) 방식을 사용해왔다. 이 방식은 크리티컬 섹션에 진입하기 전에 반드시 락을 획득해야 하며, 락을 얻지 못하면 코드 실행 자체가 블록된다. 하지만 이와는 다른 접근 방식이 있다. 바로 낙관적 락(Optimistic Lock) 방식인데, 이는 "일단 실행하고 나중에 검증하자"는 철학...

Jul 20, 202517 min read261

공평한 배타 제어

공평한 배타 제어 여기서는 공평한 배타 제어에 대해 설명한다. 먼저 컨텐션(contention) 이라는 개념을 이해할 필요가 있다. 컨텐션이란 여러 스레드가 동시에 같은 락을 획득하려고 경쟁하는 상황을 말한다. 컨텐션이 높을수록 스레드들이 락을 기다리는 시간이 길어지고 성능이 저하된다. 이러한 컨텐션 상황은 시스템 아키텍처에 따라 더욱 복잡해질 수 있다. 특히 비균일 메모리 접근(Non-Uniform Memory Access, NUMA) 와 같...

Jul 13, 20259 min read21

KernelSnitch[논문 리뷰]

Paper 1. Intro 이 글은 NDSS 2025에서 발표된 KernelSnitch 논문을 소개이다. 이 연구는 커널의 평범한 데이터 구조체들이 가진 본질적인 특성이 어떻게 심각한 보안 취약점이 되는지를 보여준다. 핵심은 이러하다: "데이터 구조체의 크기에 따른 접근 시간 차이를 이용해 커널의 비밀 정보를 유출할 수 있다" 여기서는 커널 힙 포인터 유출에 집중해서 설명한다. 이 공격이 성공하면 KASLR을 우회하고 더 심각한 커널 익스플로...

Jul 11, 20257 min read124

멀티태스크와 액터 모델

멀티태스크 협조적/비협조적 멀티태스크 선점: 프로세스와의 협조 없이 수행하는 컨택스트 스위칭이라고는 하나, 결국 뺏어오는 게 가능하냐의 문제다. 협조적 멀티태스크(비선점형, cooperative): 각각의 프로세스가 자발적으로 컨택스트 스위칭을 수행하는 멀티태스크 방식. 장점: 멀티태스크 매커니즘을 구현하기 쉽다. 단점: 프로세스가 자발적으로 컨텍스트 스위칭을 해야하는데, 만약 버그가 발생하여 프로세스가 무한 루프에 빠지거나 정지하게 되면 그 ...

Jul 6, 20252 min read24
M

MaxLog

35 posts