<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>docker 보관 - 하우인포-IT·테크</title>
	<atom:link href="https://howinfo.kr/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://howinfo.kr/tag/docker/</link>
	<description>IT·AI 자동화 &#38; 인프라 전문 블로그 (하우인포)</description>
	<lastBuildDate>Sat, 14 Mar 2026 00:08:35 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://howinfo.kr/wp-content/uploads/2026/02/cropped-ChatGPT-Image-2026년-2월-12일-오후-05_39_40-32x32.png</url>
	<title>docker 보관 - 하우인포-IT·테크</title>
	<link>https://howinfo.kr/tag/docker/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Docker란 무엇인가? 시놀로지 NAS DSM 7.3 Container Manager와 함께 이해하는 실전 입문 가이드</title>
		<link>https://howinfo.kr/docker%eb%9e%80-%eb%ac%b4%ec%97%87%ec%9d%b8%ea%b0%80-%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-nas-dsm-7-3-container-manager%ec%99%80-%ed%95%a8%ea%bb%98-%ec%9d%b4%ed%95%b4%ed%95%98%eb%8a%94-%ec%8b%a4/</link>
					<comments>https://howinfo.kr/docker%eb%9e%80-%eb%ac%b4%ec%97%87%ec%9d%b8%ea%b0%80-%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-nas-dsm-7-3-container-manager%ec%99%80-%ed%95%a8%ea%bb%98-%ec%9d%b4%ed%95%b4%ed%95%98%eb%8a%94-%ec%8b%a4/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 00:08:33 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[ContainerManager]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[DockerCompose]]></category>
		<category><![CDATA[DSM7.3]]></category>
		<category><![CDATA[NAS활용]]></category>
		<category><![CDATA[도커]]></category>
		<category><![CDATA[시놀로지NAS]]></category>
		<category><![CDATA[워드프레스도커]]></category>
		<category><![CDATA[컨테이너]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=2161</guid>

					<description><![CDATA[<p>도커(Docker)를 처음 접하면 가장 먼저 드는 생각이 있습니다.“가상머신이랑 뭐가 다른 거지?”“내 NAS에서도 쓸 수 있나?”“시놀로지의 Container Manager는 Docker랑 같은 건가?”...</p>
<p>게시물 <a href="https://howinfo.kr/docker%eb%9e%80-%eb%ac%b4%ec%97%87%ec%9d%b8%ea%b0%80-%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-nas-dsm-7-3-container-manager%ec%99%80-%ed%95%a8%ea%bb%98-%ec%9d%b4%ed%95%b4%ed%95%98%eb%8a%94-%ec%8b%a4/">Docker란 무엇인가? 시놀로지 NAS DSM 7.3 Container Manager와 함께 이해하는 실전 입문 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p>도커(Docker)를 처음 접하면 가장 먼저 드는 생각이 있습니다.<br>“가상머신이랑 뭐가 다른 거지?”<br>“내 NAS에서도 쓸 수 있나?”<br>“시놀로지의 Container Manager는 Docker랑 같은 건가?”</p>



<p>저도 처음에는 이 부분이 제일 헷갈렸습니다. PC에서는 Docker 명령어가 보이고, 시놀로지 NAS에서는 Container Manager라는 이름으로 보이니 완전히 다른 제품처럼 느껴졌거든요. 그런데 실제로 써보면 구조는 생각보다 단순합니다. <strong>Docker는 컨테이너를 실행하는 기반 기술</strong>이고, <strong>DSM 7.3의 Container Manager는 NAS에서 그걸 좀 더 쉽게 다루게 해주는 관리 도구</strong>에 가깝습니다. Docker 컨테이너는 호스트의 커널을 공유하는 가벼운 격리 프로세스라 VM보다 부담이 적고, Docker Compose는 여러 서비스를 한 번에 정의하고 띄울 수 있게 해줍니다.</p>



<p>이번 글에서는</p>



<ul class="wp-block-list">
<li>Docker가 왜 필요한지</li>



<li>시놀로지 NAS에서 Container Manager로 무엇을 할 수 있는지</li>



<li>둘의 차이를 어떻게 이해하면 쉬운지</li>



<li>실제 예시는 어떤 식으로 시작하면 좋은지</li>
</ul>



<p>이 순서로 정리해보겠습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker를 한 문장으로 설명하면</h2>



<p>Docker는 <strong>애플리케이션을 필요한 실행 환경과 함께 묶어서, 어느 서버에서든 비슷하게 실행할 수 있게 해주는 컨테이너 플랫폼</strong>입니다. Docker 공식 문서도 Docker를 “애플리케이션을 개발·배포·실행하기 위한 오픈 플랫폼”으로 설명하고 있고, 컨테이너는 필요한 파일을 포함한 격리된 프로세스로 설명합니다.</p>



<p>쉽게 말하면 이런 느낌입니다.</p>



<p>예전 방식은<br>“서버마다 설치 환경이 달라서 여기서는 되는데 저기서는 안 된다”는 문제가 자주 생겼습니다.</p>



<p>Docker 방식은<br>“앱 + 라이브러리 + 실행 환경”을 이미지로 묶어두고, 그 이미지를 어디서든 같은 방식으로 실행하는 구조입니다.</p>



<p>그래서 개발 PC에서 잘 돌던 앱을 NAS나 리눅스 서버로 옮길 때도 훨씬 예측 가능해집니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">컨테이너와 가상머신은 무엇이 다를까</h2>



<p>처음 입문할 때 가장 많이 비교하는 대상이 VM입니다.</p>



<p>가상머신은 운영체제 자체를 통째로 하나 더 올리는 느낌입니다.<br>반면 컨테이너는 <strong>호스트 OS의 커널을 공유하면서 필요한 프로세스만 격리해서 실행</strong>합니다. Docker 문서에서도 여러 컨테이너가 같은 커널을 공유한다고 설명합니다. 그래서 보통 컨테이너가 더 가볍고, 시작도 빠르고, 작은 단위의 서비스 배포에 잘 맞습니다.</p>



<p>제가 실무나 홈서버 관점에서 느낀 차이는 이렇습니다.</p>



<ul class="wp-block-list">
<li><strong>가상머신</strong>: 운영체제까지 따로 필요, 무겁지만 독립성이 큼</li>



<li><strong>컨테이너</strong>: 앱 단위 배포에 유리, 가볍고 빠름</li>



<li><strong>홈서버/NAS</strong>: 제한된 자원에서 여러 서비스를 띄우려면 컨테이너가 훨씬 효율적</li>
</ul>



<p>즉, NAS처럼 CPU·메모리가 아주 넉넉하지 않은 환경에서는 Docker가 특히 잘 맞습니다.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="512" height="768" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_contaner.png" alt="" class="wp-image-2163" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_contaner.png 512w, https://howinfo.kr/wp-content/uploads/2026/03/docker_contaner-200x300.png 200w" sizes="(max-width: 512px) 100vw, 512px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker에서 자주 보는 핵심 용어 5가지</h2>



<h3 class="wp-block-heading">1) 이미지(Image)</h3>



<p>컨테이너를 만들기 위한 템플릿입니다.<br>예를 들어 <code>nginx</code>, <code>postgres</code>, <code>wordpress</code> 같은 것들이 이미지입니다.</p>



<h3 class="wp-block-heading">2) 컨테이너(Container)</h3>



<p>이미지를 실제로 실행한 상태입니다.<br>이미지는 설계도, 컨테이너는 실행 중인 인스턴스라고 생각하면 이해가 쉽습니다.</p>



<h3 class="wp-block-heading">3) 볼륨(Volume)</h3>



<p>컨테이너를 지워도 데이터를 남기기 위한 저장소입니다.<br>DB 데이터, 업로드 파일, 설정 파일은 보통 볼륨에 분리합니다. Docker Engine 문서는 이미지·컨테이너 외에도 볼륨과 네트워크 같은 객체를 daemon이 관리한다고 설명합니다.</p>



<h3 class="wp-block-heading">4) 네트워크(Network)</h3>



<p>컨테이너끼리 통신하거나 외부와 연결될 때 쓰는 가상 네트워크입니다.</p>



<h3 class="wp-block-heading">5) Compose</h3>



<p>여러 컨테이너를 한 번에 정의하는 방식입니다. Docker는 Compose를 단일 YAML 파일로 서비스·네트워크·볼륨을 관리하는 도구로 설명합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker Engine과 Synology Container Manager의 관계</h2>



<p>이 부분이 가장 중요합니다.</p>



<p><strong>Docker Engine</strong>은 실제로 컨테이너를 실행하는 핵심 엔진입니다. Docker 공식 문서에 따르면 Docker Engine은 <code>dockerd</code> 데몬, API, CLI로 구성되고 이미지·컨테이너·네트워크·볼륨 등을 관리합니다.</p>



<p>반면 <strong>시놀로지 DSM 7.3의 Container Manager</strong>는<br>NAS 환경에서 컨테이너를 GUI로 다루기 쉽게 만든 관리 레이어라고 보면 됩니다. Synology 공식 문서에서는 Project 메뉴에서 하나 또는 여러 컨테이너로 구성된 프로젝트를 생성·운영·관리할 수 있다고 안내합니다.</p>



<p>즉,</p>



<ul class="wp-block-list">
<li><strong>Docker Engine</strong> = 실제 실행 엔진</li>



<li><strong>Container Manager</strong> = NAS에서 쉽게 다루는 관리 화면</li>



<li><strong>Compose / Project</strong> = 여러 컨테이너를 한 세트로 관리하는 방식</li>
</ul>



<p>이라고 이해하면 거의 맞습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">DSM 7.3 Container Manager가 편한 이유</h2>



<p>시놀로지 NAS를 쓰는 분이라면 명령어보다 GUI가 편한 순간이 많습니다.</p>



<p>Container Manager의 장점은 이런 쪽에서 크게 느껴집니다.</p>



<h3 class="wp-block-heading">1) GUI로 이미지 검색과 다운로드가 쉬움</h3>



<p>Docker Hub에서 이미지를 찾고 내려받는 과정을 NAS 화면에서 처리할 수 있습니다.</p>



<h3 class="wp-block-heading">2) 컨테이너 생성이 쉬움</h3>



<p>포트, 환경변수, 볼륨 마운트, 재시작 정책 등을 화면에서 입력할 수 있어 초보자 진입장벽이 낮습니다.</p>



<h3 class="wp-block-heading">3) 로그와 상태 확인이 쉬움</h3>



<p>실행 여부, 에러 로그, 리소스 사용 현황을 빠르게 확인할 수 있습니다.</p>



<h3 class="wp-block-heading">4) Project 방식으로 Compose 운영이 가능함</h3>



<p>여러 컨테이너를 하나의 프로젝트처럼 묶어 관리할 수 있어서, 웹앱 + DB 같이 함께 움직여야 하는 구성을 다루기 편합니다. Synology 공식 Project 문서도 이 개념을 지원한다고 설명합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">반대로 CLI Docker가 더 좋은 경우</h2>



<p>Container Manager가 편하긴 하지만, 모든 상황에서 최고는 아닙니다.</p>



<p>직접 <code>docker</code> 나 <code>docker compose</code> 명령어를 쓰면 좋은 경우도 분명합니다.</p>



<h3 class="wp-block-heading">1) 재현성이 좋음</h3>



<p>Compose 파일 하나만 있으면 다른 서버에서도 거의 같은 구조로 올리기 쉽습니다. Docker Compose는 다중 컨테이너 앱을 YAML로 정의하고 전체 라이프사이클을 관리할 수 있다고 공식 문서가 설명합니다.</p>



<h3 class="wp-block-heading">2) 백업과 버전관리가 쉬움</h3>



<p>설정이 파일로 남기 때문에 Git으로 관리하기 좋습니다.</p>



<h3 class="wp-block-heading">3) 자동화에 강함</h3>



<p>스크립트, CI/CD, 배포 자동화와 연결하기 좋습니다.</p>



<h3 class="wp-block-heading">4) 옵션을 세밀하게 다루기 좋음</h3>



<p>GUI에서 안 보이는 옵션도 CLI로는 직접 제어하기 쉽습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">한눈에 비교: Docker CLI vs DSM 7.3 Container Manager</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>Docker CLI / Compose</th><th>DSM 7.3 Container Manager</th></tr></thead><tbody><tr><td>진입장벽</td><td>초반엔 높음</td><td>낮음</td></tr><tr><td>설정 방식</td><td>텍스트 파일, 명령어</td><td>GUI 중심</td></tr><tr><td>재현성</td><td>매우 좋음</td><td>보통</td></tr><tr><td>자동화</td><td>강함</td><td>상대적으로 제한적</td></tr><tr><td>학습 난이도</td><td>높음</td><td>쉬움</td></tr><tr><td>초보자 추천도</td><td>중간</td><td>높음</td></tr><tr><td>실무 확장성</td><td>매우 높음</td><td>홈서버/소규모 운영에 좋음</td></tr></tbody></table></figure>



<p>제 경험상</p>



<ul class="wp-block-list">
<li><strong>처음 시작</strong>은 Container Manager</li>



<li><strong>구성이 커지면 Compose 파일 관리</strong><br>이 흐름이 가장 안정적이었습니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">실제 예시 1: 가장 쉬운 시작, Nginx 하나 띄워보기</h2>



<p>Docker 입문에서 제일 쉬운 예시는 정적 웹서버입니다.</p>



<p>예를 들어 Nginx 컨테이너 하나를 띄우면<br>“이미지 다운로드 → 컨테이너 실행 → 포트 연결”<br>이라는 Docker의 핵심 흐름을 빠르게 익힐 수 있습니다.</p>



<p>Docker 공식 문서에서 <code>docker run</code>은 이미지로부터 컨테이너를 실행하는 기본 명령이고, 이미지 참조에는 태그를 붙여 특정 버전을 지정할 수 있다고 설명합니다.</p>



<p>예시 명령은 이런 형태입니다.</p>



<pre class="wp-block-preformatted">docker run -d --name my-nginx -p 8080:80 nginx:latest</pre>



<p>이 의미는 다음과 같습니다.</p>



<ul class="wp-block-list">
<li><code>-d</code> : 백그라운드 실행</li>



<li><code>--name my-nginx</code> : 컨테이너 이름 지정</li>



<li><code>-p 8080:80</code> : NAS나 서버의 8080 포트를 컨테이너 80 포트와 연결</li>



<li><code>nginx:latest</code> : 실행할 이미지</li>
</ul>



<h3 class="wp-block-heading">DSM 7.3 Container Manager에서는?</h3>



<p>같은 작업을 GUI로 할 수 있습니다.</p>



<ol class="wp-block-list">
<li>이미지 검색에서 <code>nginx</code> 다운로드</li>



<li>새 컨테이너 생성</li>



<li>로컬 포트 8080 → 컨테이너 포트 80 연결</li>



<li>실행</li>



<li>브라우저에서 <code>NAS주소:8080</code> 접속</li>
</ol>



<p>처음 Docker를 이해할 때는 이 예시 하나만 성공해도 감이 많이 잡힙니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">실제 예시 2: 웹서비스답게, WordPress + MariaDB 같이 올리기</h2>



<p>여기부터는 Compose 개념이 정말 편해집니다.</p>



<p>워드프레스는 단독으로 끝나지 않고 보통</p>



<ul class="wp-block-list">
<li>WordPress 컨테이너</li>



<li>MariaDB 또는 MySQL 컨테이너<br>두 개 이상이 함께 필요합니다.</li>
</ul>



<p>이런 구조를 각각 따로 만들 수도 있지만, Compose로 관리하면 훨씬 정리됩니다. Compose는 여러 서비스를 한 YAML로 정의하는 방식이고, Docker 공식 빠른 시작도 Python 앱 + Redis 예시로 이런 멀티 컨테이너 구조를 보여줍니다.</p>



<p>아래는 입문용 예시입니다.</p>



<pre class="wp-block-preformatted">services:<br>  db:<br>    image: mariadb:11<br>    container_name: wp-db<br>    restart: unless-stopped<br>    environment:<br>      MYSQL_ROOT_PASSWORD: strong_root_password<br>      MYSQL_DATABASE: wordpress<br>      MYSQL_USER: wpuser<br>      MYSQL_PASSWORD: strong_wp_password<br>    volumes:<br>      - ./db_data:/var/lib/mysql  wordpress:<br>    image: wordpress:php8.2-apache<br>    container_name: wp-app<br>    restart: unless-stopped<br>    depends_on:<br>      - db<br>    ports:<br>      - "8081:80"<br>    environment:<br>      WORDPRESS_DB_HOST: db:3306<br>      WORDPRESS_DB_USER: wpuser<br>      WORDPRESS_DB_PASSWORD: strong_wp_password<br>      WORDPRESS_DB_NAME: wordpress<br>    volumes:<br>      - ./wp_data:/var/www/html</pre>



<h3 class="wp-block-heading">이 예시에서 중요한 포인트</h3>



<ul class="wp-block-list">
<li><code>services</code> 아래에 앱과 DB를 같이 정의</li>



<li><code>depends_on</code>으로 실행 순서를 어느 정도 정리</li>



<li><code>volumes</code>로 데이터를 컨테이너 밖에 보관</li>



<li>포트 <code>8081:80</code>으로 워드프레스 접속 가능</li>
</ul>



<h3 class="wp-block-heading">DSM 7.3 Container Manager에서는?</h3>



<p>Project 기능에서 이런 YAML 기반 구성을 가져와 관리할 수 있습니다. Synology 공식 문서도 Project가 하나 또는 여러 컨테이너로 구성된 프로젝트를 생성·관리하는 메뉴라고 설명합니다.</p>



<p>즉, NAS에서도<br>“단순 GUI 클릭”만이 아니라<br>“Compose 스타일의 프로젝트 운영”이 가능하다는 점이 꽤 큰 장점입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">시놀로지 NAS에서 Docker를 쓸 때 특히 좋은 사례</h2>



<p>제가 보기엔 DSM 7.3 Container Manager는 아래 같은 용도에서 특히 강합니다.</p>



<h3 class="wp-block-heading">1) 홈서버 서비스 운영</h3>



<ul class="wp-block-list">
<li>워드프레스</li>



<li>n8n</li>



<li>Jellyfin</li>



<li>Joplin Server</li>



<li>Grafana</li>



<li>Portainer</li>
</ul>



<h3 class="wp-block-heading">2) 작은 사내 서비스 테스트</h3>



<ul class="wp-block-list">
<li>내부용 웹앱</li>



<li>API 서버</li>



<li>대시보드</li>



<li>DB 실험 환경</li>
</ul>



<h3 class="wp-block-heading">3) 개발·검증용 분리 환경</h3>



<p>같은 NAS 안에서도 프로젝트별로 분리해서 돌리기 좋습니다.</p>



<p>특히 시놀로지는 파일 접근, 폴더 권한, 백업 구조를 NAS 친화적으로 관리할 수 있어서 “홈랩 + 운영 연습” 용도로 꽤 괜찮습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker를 처음 쓸 때 가장 많이 하는 실수</h2>



<p>실제로 처음 할 때는 기술 자체보다 운영 습관에서 문제가 많이 납니다.</p>



<h3 class="wp-block-heading">1) 데이터를 컨테이너 안에만 저장함</h3>



<p>컨테이너 삭제 시 데이터가 같이 날아갈 수 있습니다.<br>DB, 업로드 파일, 설정 파일은 볼륨 또는 바인드 마운트로 분리하는 습관이 중요합니다. Docker Engine 문서도 persistent data에 volume 사용을 안내합니다.</p>



<h3 class="wp-block-heading">2) 포트 충돌을 확인하지 않음</h3>



<p>NAS에서 80, 443, 8080, 5000 계열 포트는 이미 다른 서비스가 쓰고 있을 수 있습니다.</p>



<h3 class="wp-block-heading">3) latest 태그만 무조건 사용함</h3>



<p>처음에는 편하지만, 나중에 버전이 달라져 예기치 않은 변경이 생길 수 있습니다. Docker 문서도 이미지 참조에 태그를 써서 특정 버전을 지정할 수 있다고 설명합니다.</p>



<h3 class="wp-block-heading">4) 환경변수를 정리하지 않음</h3>



<p>비밀번호나 설정값을 하드코딩하면 나중에 관리가 어렵습니다.</p>



<h3 class="wp-block-heading">5) 백업을 안 함</h3>



<p>Compose 파일, 데이터 폴더, DB 덤프는 반드시 따로 백업하는 습관이 필요합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">입문자에게 추천하는 시작 순서</h2>



<p>처음이면 너무 어렵게 가지 않는 게 좋습니다.</p>



<h3 class="wp-block-heading">1단계</h3>



<p>Container Manager에서 <strong>Nginx 하나</strong> 띄워보기</p>



<h3 class="wp-block-heading">2단계</h3>



<p>볼륨 마운트와 포트 매핑 이해하기</p>



<h3 class="wp-block-heading">3단계</h3>



<p>환경변수 넣는 컨테이너 실행해보기<br>예: DB, 워드프레스</p>



<h3 class="wp-block-heading">4단계</h3>



<p>Project 기능으로 Compose 스타일 구성 써보기</p>



<h3 class="wp-block-heading">5단계</h3>



<p>나중에는 YAML 파일을 따로 관리하면서 버전관리까지 연결하기</p>



<p>이렇게 가면 GUI의 편의성과 Docker 본질 둘 다 잡을 수 있습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">결국 무엇이 더 좋을까</h2>



<p>정리하면 이렇습니다.</p>



<p><strong>Docker</strong>는 컨테이너를 실행하는 기술 자체이고,<br><strong>DSM 7.3 Container Manager</strong>는 그 기술을 시놀로지 NAS에서 쉽게 다루는 도구입니다. Docker는 애플리케이션을 컨테이너로 패키징해 실행하게 해주고, Docker Compose는 여러 서비스를 하나의 YAML로 정의·운영하게 해주며, Synology의 Project 기능은 이런 멀티 컨테이너 구성을 NAS GUI에서 관리하는 데 초점을 둡니다.</p>



<p>그래서 제 추천은 단순합니다.</p>



<ul class="wp-block-list">
<li><strong>처음 배우는 단계</strong>라면 → DSM 7.3 Container Manager부터</li>



<li><strong>반복 배포와 구조화가 필요해지면</strong> → Compose 파일 관리까지</li>



<li><strong>실무형으로 확장하고 싶다면</strong> → CLI와 YAML 중심으로 이동</li>
</ul>



<p>처음부터 명령어만 붙잡고 씨름할 필요는 없습니다.<br>반대로 GUI만 쓰다 보면 구조를 놓칠 수도 있습니다.<br>가장 좋은 방법은 <strong>시놀로지 GUI로 감을 잡고, 나중에 Compose로 정리하는 흐름</strong>입니다.</p>



<p>이 방식이 홈서버 운영에도 좋고, 나중에 리눅스 서버나 클라우드로 넘어갈 때도 가장 자연스럽습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">마무리</h2>



<p>Docker를 배우면 단순히 “앱 하나 실행하는 법”만 익히는 게 아닙니다.<br><strong>서비스를 더 깔끔하게 배포하고, 더 쉽게 옮기고, 더 안정적으로 관리하는 방식</strong>을 배우게 됩니다.</p>



<p>시놀로지 NAS의 DSM 7.3 Container Manager는 그 첫걸음을 꽤 쉽게 만들어줍니다.<br>특히 홈서버, 개인 블로그, 자동화 도구, DB 실험 환경, 내부 웹서비스를 운영하려는 분들에게는 정말 좋은 입문 도구입니다.</p>



<p>저도 처음에는 NAS에서 GUI로 시작했지만, 나중에는 Compose 파일을 직접 관리하는 쪽이 훨씬 편해졌습니다.<br>그래서 처음 시작하시는 분이라면 이렇게 말씀드리고 싶습니다.</p>



<p><strong>“Container Manager로 시작하고, Docker Compose로 정리해가면 됩니다.”</strong></p>



<p>그 흐름만 잡혀도 Docker가 훨씬 덜 어렵게 느껴질 겁니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/docker%eb%9e%80-%eb%ac%b4%ec%97%87%ec%9d%b8%ea%b0%80-%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-nas-dsm-7-3-container-manager%ec%99%80-%ed%95%a8%ea%bb%98-%ec%9d%b4%ed%95%b4%ed%95%98%eb%8a%94-%ec%8b%a4/">Docker란 무엇인가? 시놀로지 NAS DSM 7.3 Container Manager와 함께 이해하는 실전 입문 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/docker%eb%9e%80-%eb%ac%b4%ec%97%87%ec%9d%b8%ea%b0%80-%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-nas-dsm-7-3-container-manager%ec%99%80-%ed%95%a8%ea%bb%98-%ec%9d%b4%ed%95%b4%ed%95%98%eb%8a%94-%ec%8b%a4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>너무나 쉬운 윈도우즈11+docker 이용 베드락 마인크래프트 설치하고 외부에서 접근하여 게임즐기기</title>
		<link>https://howinfo.kr/%eb%84%88%eb%ac%b4%eb%82%98-%ec%89%ac%ec%9a%b4-%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%8811docker-%ec%9d%b4%ec%9a%a9-%eb%b2%a0%eb%93%9c%eb%9d%bd-%eb%a7%88%ec%9d%b8%ed%81%ac%eb%9e%98%ed%94%84%ed%8a%b8/</link>
					<comments>https://howinfo.kr/%eb%84%88%eb%ac%b4%eb%82%98-%ec%89%ac%ec%9a%b4-%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%8811docker-%ec%9d%b4%ec%9a%a9-%eb%b2%a0%eb%93%9c%eb%9d%bd-%eb%a7%88%ec%9d%b8%ed%81%ac%eb%9e%98%ed%94%84%ed%8a%b8/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Wed, 04 Mar 2026 08:43:59 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[BDS]]></category>
		<category><![CDATA[bedrock]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[gameserver]]></category>
		<category><![CDATA[iptime]]></category>
		<category><![CDATA[게임서버]]></category>
		<category><![CDATA[마인크래프트]]></category>
		<category><![CDATA[포트포워딩]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=2143</guid>

					<description><![CDATA[<p>집에서 마인크래프트(베드락) 서버를 운영할 때 제일 깔끔한 방법은 BDS(Bedrock Dedicated Server) 를 Docker 컨테이너로 실행하는 것입니다.이번 글은 플러그인/애드온 없이, 서버가...</p>
<p>게시물 <a href="https://howinfo.kr/%eb%84%88%eb%ac%b4%eb%82%98-%ec%89%ac%ec%9a%b4-%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%8811docker-%ec%9d%b4%ec%9a%a9-%eb%b2%a0%eb%93%9c%eb%9d%bd-%eb%a7%88%ec%9d%b8%ed%81%ac%eb%9e%98%ed%94%84%ed%8a%b8/">너무나 쉬운 윈도우즈11+docker 이용 베드락 마인크래프트 설치하고 외부에서 접근하여 게임즐기기</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p>집에서 마인크래프트(베드락) 서버를 운영할 때 제일 깔끔한 방법은 <strong>BDS(Bedrock Dedicated Server)</strong> 를 <strong>Docker 컨테이너로 실행</strong>하는 것입니다.<br>이번 글은 <strong>플러그인/애드온 없이</strong>, 서버가 실제로 동작하는지 <strong>안드로이드에서 접속 확인</strong>하고, 마지막으로 <strong>ipTIME 포트포워딩</strong>으로 <strong>집 밖(외부) 접속</strong>까지 완성하는 실전 절차를 정리합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1) 준비물 체크</h2>



<ul class="wp-block-list">
<li>Windows 11 (Pro/Home 무관)</li>



<li>Docker Desktop 설치 완료 (<code>docker ps</code>가 에러 없이 동작해야 함)</li>



<li>공유기: ipTIME (KT 회선 환경 가정)</li>



<li>접속 클라이언트: 안드로이드 Minecraft(베드락)</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="789" height="447" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock01.png" alt="" class="wp-image-2148" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock01.png 789w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock01-300x170.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock01-768x435.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2) BDS 기본 포트(중요)</h2>



<p>베드락 서버 기본 포트는 다음과 같습니다.</p>



<ul class="wp-block-list">
<li><strong>UDP 19132</strong> (게임 접속 포트)</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="37" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-1024x37.png" alt="" class="wp-image-2144" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-1024x37.png 1024w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-300x11.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-768x28.png 768w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05.png 1427w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>즉, 내부/외부 모두 <strong>UDP 19132</strong>만 제대로 열리면 접속이 됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3) Docker로 BDS 설치(Compose 방식)</h2>



<h3 class="wp-block-heading">3-1. 서버 폴더 만들기 (월드/설정 영구 저장)</h3>



<p>예시: <code>D:\minecraft\bedrock</code></p>



<p>PowerShell:</p>



<pre class="wp-block-preformatted">mkdir D:\minecraft\bedrock<br>cd D:\minecraft\bedrock</pre>



<h3 class="wp-block-heading">3-2. docker-compose.yml 만들기</h3>



<p><code>D:\minecraft\bedrock\docker-compose.yml</code> 파일을 만들고 아래 내용을 그대로 붙여넣습니다.</p>



<pre class="wp-block-preformatted">services:<br>  bds:<br>    image: itzg/minecraft-bedrock-server:latest<br>    container_name: mc-bedrock<br>    ports:<br>      - "19132:19132/udp"<br>    environment:<br>      EULA: "TRUE"<br>      SERVER_NAME: "Howinfo Bedrock Server"<br>      GAMEMODE: "survival"<br>      DIFFICULTY: "normal"<br>      LEVEL_NAME: "HowinfoWorld"<br>      MAX_PLAYERS: "10"<br>      ONLINE_MODE: "true"<br>      TZ: "Asia/Seoul"<br>    volumes:<br>      - ./data:/data<br>    restart: unless-stopped</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="675" height="616" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock04.png" alt="" class="wp-image-2145" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock04.png 675w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock04-300x274.png 300w" sizes="auto, (max-width: 675px) 100vw, 675px" /></figure>



<h3 class="wp-block-heading">3-3. 서버 실행</h3>



<pre class="wp-block-preformatted">docker compose up -d</pre>



<p>정상 동작 확인:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="102" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock03-1024x102.png" alt="" class="wp-image-2146" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock03-1024x102.png 1024w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock03-300x30.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock03-768x76.png 768w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock03.png 1029w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-preformatted">docker ps<br>docker logs -f mc-bedrock</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="735" height="374" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock02.png" alt="" class="wp-image-2147" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock02.png 735w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock02-300x153.png 300w" sizes="auto, (max-width: 735px) 100vw, 735px" /></figure>



<ul class="wp-block-list">
<li><code>docker ps</code>에서 <code>mc-bedrock</code>이 Running이면 1차 성공</li>



<li><code>docker logs -f</code>에서 심각한 에러 없이 대기 상태로 들어가면 OK</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4) Windows 방화벽 열기 (UDP 19132)</h2>



<p>서버 PC(Windows 11)에서 방화벽이 막고 있으면, 같은 집에서도 접속이 안 될 수 있습니다.</p>



<p><strong>Windows 보안 → 방화벽 및 네트워크 보호 → 고급 설정 → 인바운드 규칙 → 새 규칙</strong></p>



<ul class="wp-block-list">
<li>규칙 유형: <strong>포트</strong></li>



<li>프로토콜: <strong>UDP</strong></li>



<li>포트: <strong>19132</strong></li>



<li>허용</li>



<li>프로필: 보통 <strong>개인(Private)</strong> 포함(필요 시 도메인도)</li>



<li>이름 예: <code>Minecraft Bedrock UDP 19132</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5) 안드로이드에서 “같은 와이파이”로 접속 확인 (내부 접속)</h2>



<p>외부 설정 전에 먼저 내부에서 정상 접속되는지 확인하는 게 가장 빠릅니다.</p>



<h3 class="wp-block-heading">5-1. 서버 PC 내부 IP 확인</h3>



<p>PowerShell:</p>



<pre class="wp-block-preformatted">ipconfig</pre>



<p>예: <code>192.168.0.15</code></p>



<h3 class="wp-block-heading">5-2. 안드로이드 Minecraft에서 서버 추가</h3>



<p>Minecraft(베드락) → <strong>플레이</strong> → <strong>서버</strong> → <strong>서버 추가</strong> (핸드폰에서 연결할 서버주소 또는 도메인 직접 입력)</p>



<ul class="wp-block-list">
<li>서버 이름: 아무거나</li>



<li>서버 주소: <code>192.168.0.15</code> (서버 PC 내부 IP)</li>



<li>포트: <code>19132</code></li>
</ul>



<p>✅ 같은 와이파이에서 접속이 되면, <strong>BDS 설치/컨테이너/방화벽은 거의 끝난 것</strong>입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6) ipTIME 공유기 포트포워딩(외부 접속) 설정</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="37" src="https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-1024x37.png" alt="" class="wp-image-2144" srcset="https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-1024x37.png 1024w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-300x11.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05-768x28.png 768w, https://howinfo.kr/wp-content/uploads/2026/03/bedrock05.png 1427w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>이제 집 밖(모바일 데이터, 회사, 외부 PC)에서도 접속되게 하려면 공유기에서 포트를 열어야 합니다.</p>



<h3 class="wp-block-heading">6-1. 서버 PC 내부 IP 고정(권장)</h3>



<p>서버 PC의 내부 IP가 바뀌면 포트포워딩이 무용지물이 됩니다.</p>



<ul class="wp-block-list">
<li>ipTIME 관리자 페이지 접속(보통 <code>192.168.0.1</code>)</li>



<li><strong>DHCP 서버 설정 / 주소 예약</strong> 메뉴에서<br>서버 PC의 MAC 주소에 <code>192.168.0.15</code>처럼 고정 예약 권장</li>
</ul>



<h3 class="wp-block-heading">6-2. 포트포워딩 추가</h3>



<p>ipTIME 관리자 페이지 → <strong>NAT/라우터관리 → 포트포워드</strong></p>



<ul class="wp-block-list">
<li>프로토콜: <strong>UDP</strong></li>



<li>외부 포트: <strong>19132</strong></li>



<li>내부 IP: 서버 PC 내부 IP (예: <code>192.168.0.15</code>)</li>



<li>내부 포트: <strong>19132</strong></li>
</ul>



<p>저장 후 적용</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7) 집 밖(외부)에서 접속 확인</h2>



<h3 class="wp-block-heading">7-1. 공인 IP 확인</h3>



<p>서버 PC 또는 휴대폰에서 “내 IP” 검색(공인 IP 확인)<br>외부 접속 테스트 시 주소로 사용합니다.</p>



<h3 class="wp-block-heading">7-2. 안드로이드에서 모바일 데이터로 접속 테스트</h3>



<p>안드로이드에서 와이파이를 끄고(모바일 데이터로 전환) Minecraft → 서버 추가:</p>



<ul class="wp-block-list">
<li>서버 주소: <strong>공인 IP</strong></li>



<li>포트: <strong>19132</strong></li>
</ul>



<p>✅ 모바일 데이터에서 접속되면 외부 접속까지 성공입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8) 외부 접속이 안 될 때(가장 흔한 원인 3가지)</h2>



<ol class="wp-block-list">
<li><strong>UDP 포트포워딩을 TCP로 걸어둔 경우</strong>
<ul class="wp-block-list">
<li>베드락은 기본이 UDP입니다. 포워딩 프로토콜이 UDP인지 다시 확인하세요.</li>
</ul>
</li>



<li><strong>Windows 방화벽 규칙 누락</strong>
<ul class="wp-block-list">
<li>UDP 19132 인바운드가 실제로 허용됐는지 재확인</li>
</ul>
</li>



<li><strong>이중 NAT (KT 장비 + ipTIME)</strong>
<ul class="wp-block-list">
<li>KT 모뎀/공유기가 라우팅을 하고, ipTIME도 라우팅을 하면 “겹 NAT”가 생겨 외부 접속이 막히는 경우가 있습니다.</li>



<li>이때 해결 방법은 보통:
<ul class="wp-block-list">
<li>KT 장비를 <strong>브릿지 모드</strong>로 전환하거나</li>



<li>KT 장비에서 ipTIME을 <strong>DMZ</strong>로 지정하거나</li>



<li>ipTIME을 <strong>AP 모드</strong>로 전환(권장 시나리오에 따라 다름)</li>
</ul>
</li>
</ul>
</li>
</ol>



<p>외부 접속이 막히면, 집 네트워크 구조(“KT 장비가 따로 있는지”)부터 확인하는 게 제일 빠릅니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9) 운영 팁(최소한만)</h2>



<ul class="wp-block-list">
<li>서버 재시작:</li>
</ul>



<pre class="wp-block-preformatted">docker restart mc-bedrock</pre>



<ul class="wp-block-list">
<li>서버 종료/시작:</li>
</ul>



<pre class="wp-block-preformatted">docker stop mc-bedrock<br>docker start mc-bedrock</pre>



<ul class="wp-block-list">
<li>데이터(월드/설정) 저장 위치:
<ul class="wp-block-list">
<li><code>D:\minecraft\bedrock\data\</code><br>이 폴더만 백업하면 됩니다(서버 중지 후 압축 권장).</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">마무리</h2>



<p>정리하면, <strong>Windows 11에서 Docker로 BDS 운영</strong>은 아래 순서로 끝납니다.</p>



<ol class="wp-block-list">
<li>Docker Compose로 BDS 실행</li>



<li>Windows 방화벽 UDP 19132 허용</li>



<li>안드로이드(같은 와이파이) 접속 확인</li>



<li>ipTIME UDP 19132 포트포워딩</li>



<li>안드로이드(모바일 데이터)로 외부 접속 확인</li>
</ol>



<p>여기까지 되면 “서버가 실제로 운영 가능한 상태”입니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%eb%84%88%eb%ac%b4%eb%82%98-%ec%89%ac%ec%9a%b4-%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%8811docker-%ec%9d%b4%ec%9a%a9-%eb%b2%a0%eb%93%9c%eb%9d%bd-%eb%a7%88%ec%9d%b8%ed%81%ac%eb%9e%98%ed%94%84%ed%8a%b8/">너무나 쉬운 윈도우즈11+docker 이용 베드락 마인크래프트 설치하고 외부에서 접근하여 게임즐기기</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%eb%84%88%eb%ac%b4%eb%82%98-%ec%89%ac%ec%9a%b4-%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%8811docker-%ec%9d%b4%ec%9a%a9-%eb%b2%a0%eb%93%9c%eb%9d%bd-%eb%a7%88%ec%9d%b8%ed%81%ac%eb%9e%98%ed%94%84%ed%8a%b8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 11 Pro Docker 설치 가이드 (WSL 2 백엔드) + 오류 해결</title>
		<link>https://howinfo.kr/windows-11-pro-docker-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c-wsl-2-%eb%b0%b1%ec%97%94%eb%93%9c-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/</link>
					<comments>https://howinfo.kr/windows-11-pro-docker-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c-wsl-2-%eb%b0%b1%ec%97%94%eb%93%9c-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Mon, 02 Mar 2026 09:10:34 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Docker Desktop]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[Window 11 pro]]></category>
		<category><![CDATA[WSL2]]></category>
		<category><![CDATA[개발환경]]></category>
		<category><![CDATA[나스]]></category>
		<category><![CDATA[도커]]></category>
		<category><![CDATA[미니스포럼 N5 PRO]]></category>
		<category><![CDATA[컨테이너]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=2128</guid>

					<description><![CDATA[<p>NAS나 개발 서버를 운영하다 보면, 결국 Docker를 만나게 됩니다. 서비스 하나 올릴 때마다 “설치 → 설정 → 충돌”을 반복하는 대신,...</p>
<p>게시물 <a href="https://howinfo.kr/windows-11-pro-docker-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c-wsl-2-%eb%b0%b1%ec%97%94%eb%93%9c-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/">Windows 11 Pro Docker 설치 가이드 (WSL 2 백엔드) + 오류 해결</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p>NAS나 개발 서버를 운영하다 보면, 결국 <strong>Docker</strong>를 만나게 됩니다. 서비스 하나 올릴 때마다 “설치 → 설정 → 충돌”을 반복하는 대신, 컨테이너로 깔끔하게 분리해서 관리할 수 있으니까요.</p>



<p>저는 미니스포럼 N5 Pro 같은 <strong>저전력·고효율 미니PC</strong>를 홈서버/NAS 보조 서버로 쓰는 경우가 많은데, 이때 Windows 11 Pro에서 Docker를 가장 쾌적하게 돌리는 방식은 <strong>Docker Desktop + WSL 2 백엔드</strong> 조합이었습니다.</p>



<p>이 글은 <strong>초보자도 그대로 따라 하면 설치가 끝나는 흐름</strong>으로 정리했고, 실제로 많이 막히는 <strong>오류 해결</strong>까지 함께 넣었습니다. (붙여넣기용 완성본)</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1) 오늘 설치할 구성 (핵심 요약)</h2>



<ul class="wp-block-list">
<li>Windows 11 Pro</li>



<li>WSL 2 활성화</li>



<li>Docker Desktop 설치 (WSL 2 백엔드 사용)</li>



<li><code>docker run hello-world</code>로 최종 검증</li>



<li>오류 발생 시 체크 순서 제공</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2) 사전 준비 체크 (여기서 80%가 결정됩니다)</h2>



<h3 class="wp-block-heading">(1) BIOS 가상화(VT-x/AMD-V) 활성화 확인</h3>



<p>WSL 2와 Docker는 가상화 기능에 의존합니다.</p>



<ul class="wp-block-list">
<li>BIOS 메뉴에서 아래 항목이 <strong>Enabled</strong>인지 확인
<ul class="wp-block-list">
<li>Intel Virtualization Technology (VT-x)</li>



<li>또는 SVM / AMD-V</li>
</ul>
</li>
</ul>



<p>✅ 증상 힌트</p>



<ul class="wp-block-list">
<li>가상화가 꺼져 있으면 WSL 설치가 되더라도 Docker가 정상 실행되지 않거나, WSL이 1로 떨어지는 경우가 있습니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">(2) Windows 기능 켜기 (필수)</h3>



<p>시작 메뉴 → <strong>“Windows 기능 켜기/끄기”</strong> 검색 후 실행, 아래 항목을 체크합니다.</p>



<ul class="wp-block-list">
<li><strong>Linux용 Windows 하위 시스템</strong></li>



<li><strong>가상 머신 플랫폼</strong></li>



<li>(Pro라면 켜두면 좋은 편) <strong>Hyper-V</strong></li>
</ul>



<p>체크 후 [확인] → 재부팅</p>



<p>✅ 포인트</p>



<ul class="wp-block-list">
<li>WSL 2는 “가상 머신 플랫폼”이 꺼져 있으면 정상 동작이 어렵습니다.</li>



<li>Hyper-V는 WSL 2 백엔드에서도 환경에 따라 도움이 됩니다(특히 회사 PC/보안정책 환경).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3) WSL 2 설치 및 업데이트 (PowerShell 관리자)</h2>



<p>PowerShell을 <strong>관리자 권한</strong>으로 실행합니다.</p>



<h3 class="wp-block-heading">(1) WSL 설치/업데이트</h3>



<pre class="wp-block-preformatted">wsl --install<br>wsl --update</pre>



<h3 class="wp-block-heading">(2) WSL 기본 버전 2 고정</h3>



<pre class="wp-block-preformatted">wsl --set-default-version 2</pre>



<h3 class="wp-block-heading">(3) WSL 상태 확인(선택)</h3>



<pre class="wp-block-preformatted">wsl --status<br>wsl -l -v</pre>



<p>✅ 여기서 확인할 것</p>



<ul class="wp-block-list">
<li><code>wsl -l -v</code> 출력에서 배포판이 보이고, VERSION이 <strong>2</strong>인지 확인</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4) 리눅스 배포판(Ubuntu) 설치 (없으면 반드시)</h2>



<p><code>wsl -l -v</code>에서 배포판이 하나도 없다면 Ubuntu를 설치합니다.</p>



<pre class="wp-block-preformatted">wsl --install -d Ubuntu</pre>



<p>설치 후 Ubuntu를 한 번 실행하면 <strong>Linux 사용자 이름/비밀번호</strong>를 설정하는 단계가 나옵니다.<br>(비밀번호는 입력해도 화면에 안 보이는 게 정상입니다)</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5) Docker Desktop 설치 (WSL 2 백엔드로)</h2>



<h3 class="wp-block-heading">(1) 설치 파일 실행</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="705" height="499" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_003.png" alt="" class="wp-image-2131" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_003.png 705w, https://howinfo.kr/wp-content/uploads/2026/03/docker_003-300x212.png 300w" sizes="auto, (max-width: 705px) 100vw, 705px" /></figure>



<p>Docker Desktop Installer.exe 실행</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="729" height="501" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_002.png" alt="" class="wp-image-2130" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_002.png 729w, https://howinfo.kr/wp-content/uploads/2026/03/docker_002-300x206.png 300w" sizes="auto, (max-width: 729px) 100vw, 729px" /></figure>



<h3 class="wp-block-heading">(2) 설치 중 가장 중요한 옵션</h3>



<p>설치 과정에서 아래 옵션이 나오면 <strong>반드시 체크된 상태</strong>로 진행합니다.</p>



<ul class="wp-block-list">
<li>✅ <strong>Use WSL 2 instead of Hyper-V (recommended)</strong></li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="591" height="436" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_001.png" alt="" class="wp-image-2129" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_001.png 591w, https://howinfo.kr/wp-content/uploads/2026/03/docker_001-300x221.png 300w" sizes="auto, (max-width: 591px) 100vw, 591px" /></figure>



<h3 class="wp-block-heading">(3) 설치 완료 후 재부팅</h3>



<p>설치가 끝나면 <strong>Close and restart</strong>로 재부팅합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6) Docker Desktop 설정 확인 (WSL 통합)</h2>



<p>재부팅 후 Docker Desktop 실행 → Settings에서 확인합니다.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="803" height="512" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_005.png" alt="" class="wp-image-2133" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_005.png 803w, https://howinfo.kr/wp-content/uploads/2026/03/docker_005-300x191.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/docker_005-768x490.png 768w" sizes="auto, (max-width: 803px) 100vw, 803px" /></figure>



<ul class="wp-block-list">
<li><strong>Settings → Resources → WSL Integration</strong>
<ul class="wp-block-list">
<li>Ubuntu(또는 설치한 배포판)에 대해</li>



<li>✅ <strong>Enable integration</strong> 켬</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="686" height="670" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_006.png" alt="" class="wp-image-2134" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_006.png 686w, https://howinfo.kr/wp-content/uploads/2026/03/docker_006-300x293.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></figure>



<p>✅ 추천</p>



<ul class="wp-block-list">
<li>배포판이 여러 개라면, 실제 사용할 배포판 하나만 통합 켜두는 게 관리가 편합니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7) 설치 확인 테스트 (여기까지 오면 끝)</h2>



<p>PowerShell 또는 Windows Terminal에서 실행합니다.</p>



<h3 class="wp-block-heading">(1) 버전 확인</h3>



<pre class="wp-block-preformatted">docker --version</pre>



<h3 class="wp-block-heading">(2) hello-world 테스트</h3>



<pre class="wp-block-preformatted">docker run hello-world</pre>



<p>아래 문구가 나오면 성공입니다.</p>



<ul class="wp-block-list">
<li><code>Hello from Docker!</code></li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="573" src="https://howinfo.kr/wp-content/uploads/2026/03/docker_007-1024x573.png" alt="" class="wp-image-2135" srcset="https://howinfo.kr/wp-content/uploads/2026/03/docker_007-1024x573.png 1024w, https://howinfo.kr/wp-content/uploads/2026/03/docker_007-300x168.png 300w, https://howinfo.kr/wp-content/uploads/2026/03/docker_007-768x430.png 768w, https://howinfo.kr/wp-content/uploads/2026/03/docker_007.png 1266w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">8) 오류 해결 모음 (실제로 제일 많이 막히는 구간)</h1>



<p>아래는 “증상 → 원인 → 해결” 순서로 정리했습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 1) <code>docker</code> 명령어가 인식되지 않음</h2>



<p><strong>증상</strong></p>



<ul class="wp-block-list">
<li><code>docker : The term 'docker' is not recognized...</code></li>
</ul>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>Docker Desktop 설치가 안 되었거나, 재부팅 전 상태이거나, PATH 적용이 안 된 케이스</li>
</ul>



<p><strong>해결</strong></p>



<ol class="wp-block-list">
<li>Docker Desktop이 설치되어 있는지 확인</li>



<li>재부팅 1회</li>



<li>그래도 안 되면 Docker Desktop 재설치</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 2) <code>WSL 2 installation is incomplete</code></h2>



<p><strong>증상</strong></p>



<ul class="wp-block-list">
<li>Docker Desktop 실행 시 WSL 2 커널 관련 경고</li>
</ul>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>WSL 업데이트/Windows 업데이트 미반영 또는 재부팅 누락</li>
</ul>



<p><strong>해결</strong></p>



<ol class="wp-block-list">
<li>PowerShell(관리자) 실행</li>
</ol>



<pre class="wp-block-preformatted">wsl --update</pre>



<ol start="2" class="wp-block-list">
<li>재부팅</li>



<li>Windows Update 최신 상태 확인(선택)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 3) <code>wsl -l -v</code>에서 VERSION이 1로 뜸</h2>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>기본 버전이 2로 고정되지 않았거나, 배포판이 1로 생성된 상태</li>
</ul>



<p><strong>해결</strong></p>



<pre class="wp-block-preformatted">wsl --set-default-version 2<br>wsl --set-version Ubuntu 2</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 4) <code>0x80370102</code> / “가상 머신 플랫폼” 관련 오류</h2>



<p><strong>증상</strong></p>



<ul class="wp-block-list">
<li>WSL 실행/설치 중 가상화 관련 오류 코드 발생</li>
</ul>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>BIOS 가상화 꺼짐, Windows 기능 미활성화, 보안 기능 충돌</li>
</ul>



<p><strong>해결 체크 순서</strong></p>



<ol class="wp-block-list">
<li>BIOS VT-x/AMD-V Enabled</li>



<li>Windows 기능: Linux용 Windows 하위 시스템 / 가상 머신 플랫폼 체크</li>



<li>재부팅</li>



<li>PowerShell 관리자에서 <code>wsl --update</code></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 5) <code>docker run hello-world</code>가 다운로드에서 멈춤</h2>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>회사망/프록시/방화벽/DNS 이슈가 흔함</li>
</ul>



<p><strong>해결</strong></p>



<ul class="wp-block-list">
<li>집 인터넷/모바일 핫스팟에서 한 번 테스트</li>



<li>Docker Desktop의 네트워크/프록시 설정 확인</li>



<li>회사 PC라면 보안 정책상 Docker 허용 여부 확인 필요</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">오류 6) Docker Desktop이 “Starting…”에서 멈춤</h2>



<p><strong>원인</strong></p>



<ul class="wp-block-list">
<li>WSL 통합 문제, 배포판 손상, 업데이트 충돌</li>
</ul>



<p><strong>해결(가벼운 순서)</strong></p>



<ol class="wp-block-list">
<li>Docker Desktop 종료 후 재실행</li>



<li>재부팅</li>



<li>PowerShell 관리자:</li>
</ol>



<pre class="wp-block-preformatted">wsl --shutdown</pre>



<ol start="4" class="wp-block-list">
<li>Docker Desktop 다시 실행</li>



<li>그래도 안 되면 WSL 배포판 재설치 고려(마지막 수단)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">9) 설치 후 추천: 홈서버/NAS 운영에 바로 쓰는 기본 명령어</h1>



<p>컨테이너 목록 보기</p>



<pre class="wp-block-preformatted">docker ps<br>docker ps -a</pre>



<p>이미지 목록 보기</p>



<pre class="wp-block-preformatted">docker images</pre>



<p>컨테이너 중지/삭제</p>



<pre class="wp-block-preformatted">docker stop &lt;컨테이너ID&gt;<br>docker rm &lt;컨테이너ID&gt;</pre>



<p>이미지 삭제</p>



<pre class="wp-block-preformatted">docker rmi &lt;이미지ID&gt;</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">10) 마무리 (제가 이 구성을 추천하는 이유)</h1>



<p>Windows 11 Pro에서 Docker를 운영할 때, Hyper-V 기반으로도 가능하지만<br>실사용(특히 미니PC/홈서버)에서는 <strong>WSL 2 백엔드가 설치·유지보수 난이도가 낮고 안정적인 편</strong>이었습니다.</p>



<ul class="wp-block-list">
<li>개발 환경(리눅스 도구)도 WSL에서 자연스럽게 이어지고</li>



<li>컨테이너 운영도 Docker Desktop에서 시각적으로 관리 가능해서</li>



<li>“홈서버 운영 + 개발” 둘 다 잡기 좋았습니다.</li>
</ul>



<p></p>
<p>게시물 <a href="https://howinfo.kr/windows-11-pro-docker-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c-wsl-2-%eb%b0%b1%ec%97%94%eb%93%9c-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/">Windows 11 Pro Docker 설치 가이드 (WSL 2 백엔드) + 오류 해결</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/windows-11-pro-docker-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c-wsl-2-%eb%b0%b1%ec%97%94%eb%93%9c-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</title>
		<link>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/</link>
					<comments>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 02:51:46 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[성능튜닝]]></category>
		<category><![CDATA[스레드]]></category>
		<category><![CDATA[시스템관리]]></category>
		<category><![CDATA[운영체제기초]]></category>
		<category><![CDATA[웹서버]]></category>
		<category><![CDATA[장애대응]]></category>
		<category><![CDATA[프로세스]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1701</guid>

					<description><![CDATA[<p>0️⃣ 5줄 요약 1️⃣ 먼저 상황부터: “왜 갑자기 서버가 전체로 죽었지?” 운영하다 보면 이런 순간이 옵니다. 이럴 때 원인을 좁히려면“이게...</p>
<p>게시물 <a href="https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/">프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 5줄 요약</h2>



<ul class="wp-block-list">
<li>**프로세스(Process)**는 서로 독립된 메모리 공간을 가진 실행 단위입니다.</li>



<li>**스레드(Thread)**는 같은 프로세스 안에서 메모리를 공유하는 실행 흐름입니다.</li>



<li>프로세스는 격리(안전성)가 강점, 스레드는 속도와 자원 효율이 강점입니다.</li>



<li>실무에선 보통 “프로세스 여러 개 + 스레드”를 혼합합니다.</li>



<li>장애/성능/자원 관점에서 이해하면 튜닝 포인트가 보입니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ 먼저 상황부터: “왜 갑자기 서버가 전체로 죽었지?”</h2>



<p>운영하다 보면 이런 순간이 옵니다.</p>



<ul class="wp-block-list">
<li>특정 서비스 하나만 느린 게 아니라 전체가 버벅임</li>



<li>워커 하나가 죽었는데 전체 서비스가 영향을 받음</li>



<li>CPU는 널널한데 응답이 밀림</li>
</ul>



<p>이럴 때 원인을 좁히려면<br>“이게 프로세스 문제인가? 스레드 문제인가?”를 구분할 줄 알아야 합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 핵심 정의 3개 (딱 필요한 만큼만)</h2>



<ul class="wp-block-list">
<li><strong>프로세스</strong>: 운영체제가 관리하는 독립 실행 단위 (주소 공간 분리)</li>



<li><strong>스레드</strong>: 하나의 프로세스 안에서 실행되는 경량 실행 단위 (메모리 공유)</li>



<li><strong>컨텍스트 스위칭</strong>: 실행 대상을 바꿀 때 드는 전환 비용 (프로세스가 더 큼)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 한 장으로 보는 차이</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>구분</th><th>프로세스</th><th>스레드</th></tr></thead><tbody><tr><td>메모리</td><td>서로 완전 분리</td><td>같은 공간 공유</td></tr><tr><td>안정성</td><td>하나 죽어도 영향 적음</td><td>한 스레드 문제 → 전체 영향 가능</td></tr><tr><td>생성 비용</td><td>비교적 큼</td><td>비교적 작음</td></tr><tr><td>통신</td><td>IPC 필요</td><td>공유 메모리</td></tr><tr><td>장점</td><td>격리, 안정성</td><td>속도, 효율</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4️⃣ 실무에서 가장 많이 보는 구조</h2>



<h3 class="wp-block-heading">예시 A) 웹서버 구조</h3>



<p>보통 구조는 이렇습니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>프로세스 여러 개(워커) + 각 워커 내부 스레드</p>
</blockquote>



<p>이유:</p>



<ul class="wp-block-list">
<li>CPU 코어 활용을 위해 프로세스를 여러 개 띄움</li>



<li>각 프로세스 안에서 스레드로 동시 요청 처리</li>
</ul>



<p>예:</p>



<ul class="wp-block-list">
<li>Nginx → 마스터 + 워커 프로세스 구조</li>



<li>Java 서버 → 프로세스 1개 + 스레드풀 다수</li>



<li>PHP-FPM → 여러 워커 프로세스</li>
</ul>



<p>실무 포인트:</p>



<ul class="wp-block-list">
<li>워커 하나 죽어도 전체는 유지 → 프로세스 격리 효과</li>



<li>워커 내부는 스레드로 효율 확보</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 B) 배치/크롤러</h3>



<p>CPU 집중 작업:</p>



<ul class="wp-block-list">
<li>이미지 처리</li>



<li>암호화</li>



<li>압축</li>
</ul>



<p>→ 프로세스가 유리한 경우 많음 (코어 분산 + 격리)</p>



<p>I/O 중심 작업:</p>



<ul class="wp-block-list">
<li>HTTP 요청</li>



<li>DB 조회</li>



<li>파일 읽기</li>
</ul>



<p>→ 스레드/비동기가 효율적</p>



<p>이 차이를 모르고 구조를 설계하면 CPU를 못 쓰거나, 메모리 폭주가 발생합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 C) 워드프레스 + DB 장애</h3>



<p>디스크가 꽉 찼던 사례를 보면:</p>



<ul class="wp-block-list">
<li>mysqld → 별도 프로세스</li>



<li>PHP-FPM → 여러 프로세스</li>



<li>웹서버 → 별도 프로세스</li>
</ul>



<p>그런데 디스크가 100% 차니 전부 오류.</p>



<p>여기서 중요한 교훈:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>프로세스 격리는 메모리 관점이고,<br>디스크/CPU는 공용 자원이다.</p>
</blockquote>



<p>프로세스 구조만 믿으면 안 됩니다.<br>자원 모니터링이 핵심입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 D) Docker는 프로세스인가?</h3>



<p>Docker는 VM이 아닙니다.</p>



<ul class="wp-block-list">
<li>호스트 커널 공유</li>



<li>내부에서 일반 프로세스/스레드 실행</li>
</ul>



<p>컨테이너가 죽는다는 건 보통<br>“그 안의 메인 프로세스가 죽었다”는 뜻입니다.</p>



<p>그래서 PID 1 관리가 중요합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5️⃣ 리눅스에서 바로 확인하는 법</h2>



<h3 class="wp-block-heading">프로세스 보기</h3>



<pre class="wp-block-preformatted">ps aux | head</pre>



<h3 class="wp-block-heading">스레드까지 보기</h3>



<pre class="wp-block-preformatted">ps -eLf | head</pre>



<h3 class="wp-block-heading">특정 PID 스레드 수</h3>



<pre class="wp-block-preformatted">ps -o nlwp= -p &lt;PID&gt;</pre>



<p>nlwp = 스레드 수</p>



<h3 class="wp-block-heading">top에서 스레드 모드</h3>



<pre class="wp-block-preformatted">top -H</pre>



<p>실무에서는 <code>nlwp</code>가 갑자기 늘어나면<br>스레드 폭주를 의심합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 선택 기준 (운영 관점)</h2>



<p>✔ 안정성이 더 중요하다 → 프로세스 비중 ↑<br>✔ 처리량/공유 데이터가 중요하다 → 스레드 비중 ↑<br>✔ 대부분은 “혼합 구조”가 정답</p>



<p>튜닝할 때는 이렇게 봅니다:</p>



<ul class="wp-block-list">
<li>워커 수 = CPU 코어 활용</li>



<li>스레드풀 크기 = 동시성 제한</li>



<li>메모리 한계 = 프로세스 수와 직결</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 자주 하는 오해</h2>



<p>❌ 스레드는 무조건 빠르다<br>→ 동기화/락 경쟁 심하면 오히려 느려짐</p>



<p>❌ 프로세스면 무조건 안전하다<br>→ 디스크/CPU는 공유 자원</p>



<p>❌ 컨테이너면 완전 격리다<br>→ 커널은 공유</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 장애 대응 체크리스트</h2>



<ul class="wp-block-list">
<li>특정 프로세스만 죽었나, 전체인가?</li>



<li>스레드 수(NLWP)가 비정상적으로 늘었나?</li>



<li>CPU 코어 대비 워커 수 적절한가?</li>



<li>스레드풀 제한 설정했는가?</li>



<li>디스크/메모리 같은 공용 자원 병목은 아닌가?</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 실무에서 얻은 교훈</h2>



<p>프로세스 vs 스레드는 시험 문제가 아니라<br>“격리와 효율의 균형” 문제입니다.</p>



<p>장애가 났을 때:</p>



<ul class="wp-block-list">
<li>메모리 격리 문제인가?</li>



<li>동기화 문제인가?</li>



<li>공용 자원 병목인가?</li>
</ul>



<p>이 질문이 바로 나오면, 대응 속도가 훨씬 빨라집니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">FAQ</h1>



<p><strong>Q1. 프로세스가 무조건 더 안전한가요?</strong><br>메모리 격리는 강하지만, 디스크/CPU 병목은 같이 영향을 받습니다.</p>



<p><strong>Q2. 스레드는 왜 위험하다고 하나요?</strong><br>메모리를 공유하기 때문에 동기화 실수나 메모리 오염이 전체 장애로 번질 수 있습니다.</p>



<p><strong>Q3. 요즘은 비동기가 대세 아닌가요?</strong><br>맞습니다. 하지만 내부적으로는 여전히 스레드/이벤트 루프 구조 이해가 필요합니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/">프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker 기초 실습 가이드</title>
		<link>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/</link>
					<comments>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Thu, 12 Feb 2026 13:18:39 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[ai자동화]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker설치]]></category>
		<category><![CDATA[nas운영]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[리눅스서버]]></category>
		<category><![CDATA[서버구축]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[서버자동화]]></category>
		<category><![CDATA[자동화기ㅗ]]></category>
		<category><![CDATA[컨테이너기술]]></category>
		<category><![CDATA[컨테이너실습]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1614</guid>

					<description><![CDATA[<p>리눅스 서버 위에 나만의 컨테이너 환경 만들기 Linux 명령어에 익숙해졌다면, 이제 한 단계 올라갈 차례입니다.요즘 서버 운영, AI, 자동화, NAS...</p>
<p>게시물 <a href="https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Docker 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">리눅스 서버 위에 나만의 컨테이너 환경 만들기</h2>



<p>Linux 명령어에 익숙해졌다면, 이제 한 단계 올라갈 차례입니다.<br>요즘 서버 운영, AI, 자동화, NAS 환경에서 빠지지 않는 기술이 바로 <strong>Docker</strong>입니다.</p>



<p>Docker를 이해하면:</p>



<p>✔ 서버 세팅이 빨라지고<br>✔ 환경 충돌이 사라지고<br>✔ 자동화 구성이 쉬워지고<br>✔ 이식성이 극대화됩니다</p>



<p>이번 글에서는 <strong>직접 설치 → 실행 → 컨테이너 운영까지 실습</strong>해봅니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">1️⃣ Docker란 무엇인가?</h1>



<p>Docker는 <strong>컨테이너 기반 가상화 플랫폼</strong>입니다.</p>



<p>기존 가상머신(VM)은 OS를 통째로 올리지만,<br>Docker는 필요한 실행 환경만 분리해서 올립니다.</p>



<p>👉 가볍고 빠릅니다<br>👉 서버 운영에 최적화되어 있습니다</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">2️⃣ Docker 설치 실습 (Ubuntu 기준)</h1>



<h2 class="wp-block-heading">📌 1단계: 패키지 업데이트</h2>



<pre class="wp-block-code"><code>sudo apt update
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 2단계: Docker 설치</h2>



<pre class="wp-block-code"><code>sudo apt install docker.io -y
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 3단계: Docker 실행 확인</h2>



<pre class="wp-block-code"><code>docker --version
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 4단계: Docker 서비스 활성화</h2>



<pre class="wp-block-code"><code>sudo systemctl enable docker
sudo systemctl start docker
</code></pre>



<p>상태 확인:</p>



<pre class="wp-block-code"><code>sudo systemctl status docker
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">3️⃣ 첫 번째 컨테이너 실행해보기</h1>



<h2 class="wp-block-heading">📌 Hello World 실행</h2>



<pre class="wp-block-code"><code>sudo docker run hello-world
</code></pre>



<p>정상이라면 테스트 메시지가 출력됩니다.</p>



<p>👉 이 순간 Docker 엔진이 동작한 것입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">4️⃣ Nginx 웹서버 컨테이너 실행 실습</h1>



<h2 class="wp-block-heading">📌 Nginx 실행</h2>



<pre class="wp-block-code"><code>sudo docker run -d -p 8080:80 nginx
</code></pre>



<p>설명:</p>



<ul class="wp-block-list">
<li><code>-d</code> : 백그라운드 실행</li>



<li><code>-p 8080:80</code> : 포트 연결</li>



<li><code>nginx</code> : 이미지 이름</li>
</ul>



<p>브라우저에서 접속:</p>



<pre class="wp-block-code"><code>http:&#47;&#47;서버IP:8080
</code></pre>



<p>👉 웹서버가 바로 실행됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">5️⃣ 컨테이너 관리하기</h1>



<h2 class="wp-block-heading">📌 실행 중 컨테이너 확인</h2>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 전체 컨테이너 보기</h2>



<pre class="wp-block-code"><code>docker ps -a
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 컨테이너 중지</h2>



<pre class="wp-block-code"><code>docker stop 컨테이너ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 컨테이너 삭제</h2>



<pre class="wp-block-code"><code>docker rm 컨테이너ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">6️⃣ Docker 이미지 관리</h1>



<h2 class="wp-block-heading">📌 이미지 목록 확인</h2>



<pre class="wp-block-code"><code>docker images
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 이미지 삭제</h2>



<pre class="wp-block-code"><code>docker rmi 이미지ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">7️⃣ 실제 운영 감각 익히기 (중요)</h1>



<p>Docker는 단순 실행이 목적이 아닙니다.</p>



<p>운영에서 중요한 개념:</p>



<h3 class="wp-block-heading">🔹 포트 매핑</h3>



<p>외부포트:내부포트</p>



<pre class="wp-block-code"><code>-p 3000:3000
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">🔹 볼륨 연결 (데이터 보존)</h3>



<pre class="wp-block-code"><code>docker run -d -p 8080:80 -v /home/data:/usr/share/nginx/html nginx
</code></pre>



<p>👉 컨테이너 삭제해도 데이터 유지</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">🔹 재부팅 시 자동 실행</h3>



<pre class="wp-block-code"><code>docker run -d --restart=always nginx
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">8️⃣ Docker Compose 기초 (실무 핵심)</h1>



<p>Docker를 여러 개 운영하면 <code>docker-compose</code>가 필요합니다.</p>



<p>설치:</p>



<pre class="wp-block-code"><code>sudo apt install docker-compose -y
</code></pre>



<p>예시 <code>docker-compose.yml</code></p>



<pre class="wp-block-code"><code>version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
</code></pre>



<p>실행:</p>



<pre class="wp-block-code"><code>docker-compose up -d
</code></pre>



<p>👉 실무에서는 거의 이 방식으로 운영합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">📌 Docker를 배우면 생기는 변화</h1>



<p>✔ 서버 세팅 시간이 획기적으로 단축<br>✔ 개발/운영 환경 동일화<br>✔ 자동화 구성 쉬워짐<br>✔ NAS 활용도 상승<br>✔ AI 모델 배포 쉬워짐</p>



<p>Docker는 이제 선택이 아니라 기본입니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Docker 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps 필수 용어 50 (DevOps Essentials)</title>
		<link>https://howinfo.kr/devops-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-devops-essentials/</link>
					<comments>https://howinfo.kr/devops-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-devops-essentials/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 10:48:16 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[laC]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[Terraform]]></category>
		<category><![CDATA[로그]]></category>
		<category><![CDATA[모니터링]]></category>
		<category><![CDATA[배포자동화]]></category>
		<category><![CDATA[인프라]]></category>
		<category><![CDATA[클라우드]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1562</guid>

					<description><![CDATA[<p>1) 버전관리·협업 (1~10) 2) 빌드·패키징·릴리즈 (11~20) 3) CI/CD (21~30) 4) 컨테이너·오케스트레이션 (31~40) 5) 인프라·클라우드·운영 (41~50) ✅ DevOps에서 특히 자주 나오는...</p>
<p>게시물 <a href="https://howinfo.kr/devops-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-devops-essentials/">DevOps 필수 용어 50 (DevOps Essentials)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">1) 버전관리·협업 (1~10)</h2>



<ol class="wp-block-list">
<li><strong>Git</strong>: 코드 변경 이력 관리 도구</li>



<li><strong>Repository(Repo)</strong>: 소스코드 저장소</li>



<li><strong>Commit</strong>: 변경 사항을 기록하는 단위</li>



<li><strong>Branch</strong>: 작업 분리용 가지</li>



<li><strong>Merge</strong>: 브랜치 변경 사항 합치기</li>



<li><strong>Rebase</strong>: 커밋을 다시 정리하며 이력 재배치</li>



<li><strong>Conflict</strong>: 병합 중 충돌(같은 줄 수정 등)</li>



<li><strong>PR/MR</strong>: 코드 리뷰 및 병합 요청(Pull/Merge Request)</li>



<li><strong>Tag</strong>: 특정 버전(릴리즈 지점) 표시</li>



<li><strong>Git Flow</strong>: 브랜치 운영 전략(예: main/dev/feature)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2) 빌드·패키징·릴리즈 (11~20)</h2>



<ol start="11" class="wp-block-list">
<li><strong>Build</strong>: 실행 가능한 결과물 생성 과정</li>



<li><strong>Artifact</strong>: 빌드 결과물(jar, 이미지, zip 등)</li>



<li><strong>Dependency</strong>: 프로젝트가 필요로 하는 외부 라이브러리</li>



<li><strong>Versioning</strong>: 버전 관리 규칙(예: 1.2.3)</li>



<li><strong>Semantic Versioning(SemVer)</strong>: MAJOR.MINOR.PATCH 규칙</li>



<li><strong>Release</strong>: 사용자에게 제공되는 배포 버전</li>



<li><strong>Rollback</strong>: 문제 발생 시 이전 버전으로 되돌리기</li>



<li><strong>Hotfix</strong>: 긴급 수정 배포</li>



<li><strong>Patch</strong>: 소규모 수정(버그/보안 등)</li>



<li><strong>Changelog</strong>: 버전별 변경 기록</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3) CI/CD (21~30)</h2>



<ol start="21" class="wp-block-list">
<li><strong>CI(Continuous Integration)</strong>: 코드 통합/빌드/테스트 자동화</li>



<li><strong>CD(Continuous Delivery/Deployment)</strong>: 배포 자동화(전달/배포)</li>



<li><strong>Pipeline</strong>: 자동화 작업 흐름(빌드→테스트→배포)</li>



<li><strong>Runner/Agent</strong>: 파이프라인 작업을 실행하는 실행기</li>



<li><strong>Stage/Job</strong>: 파이프라인 단계/실행 단위</li>



<li><strong>Build Cache</strong>: 빌드 속도를 높이는 캐시</li>



<li><strong>Artifact Registry</strong>: 빌드 결과물 저장소(이미지/패키지)</li>



<li><strong>Environment</strong>: dev/stage/prod 같은 배포 환경</li>



<li><strong>Approval/Gate</strong>: 운영 반영 전 승인 단계</li>



<li><strong>Blue-Green Deploy</strong>: 두 환경 전환으로 무중단 배포</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4) 컨테이너·오케스트레이션 (31~40)</h2>



<ol start="31" class="wp-block-list">
<li><strong>Container</strong>: 실행 환경을 묶은 단위(가볍고 이식성 높음)</li>



<li><strong>Docker</strong>: 컨테이너 빌드/실행 도구</li>



<li><strong>Docker Image</strong>: 실행 템플릿(스냅샷)</li>



<li><strong>Dockerfile</strong>: 이미지 생성 레시피</li>



<li><strong>Container Registry</strong>: 이미지 저장소(Docker Hub 등)</li>



<li><strong>Kubernetes(K8s)</strong>: 컨테이너 운영 자동화(배치/확장)</li>



<li><strong>Pod</strong>: K8s의 최소 배포 단위(컨테이너 묶음)</li>



<li><strong>Deployment</strong>: Pod를 선언적으로 배포/업데이트 관리</li>



<li><strong>Service</strong>: Pod에 안정적인 접근 주소 제공</li>



<li><strong>Ingress</strong>: 외부 트래픽을 서비스로 라우팅(HTTP 경로 기반)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5) 인프라·클라우드·운영 (41~50)</h2>



<ol start="41" class="wp-block-list">
<li><strong>IaC(Infrastructure as Code)</strong>: 인프라를 코드로 관리(Terraform 등)</li>



<li><strong>Provisioning</strong>: 서버/자원 생성 및 초기 구성</li>



<li><strong>Configuration Management</strong>: 설정 자동화(Ansible 등)</li>



<li><strong>Observability</strong>: 로그/메트릭/트레이스를 통한 가시성</li>



<li><strong>Logging</strong>: 이벤트 기록(장애 분석의 핵심)</li>



<li><strong>Metrics</strong>: 수치 기반 지표(CPU, Memory, QPS 등)</li>



<li><strong>Tracing</strong>: 요청 흐름 추적(분산 환경에서 필수)</li>



<li><strong>Alerting</strong>: 이상 징후 알림(PagerDuty, Slack 등)</li>



<li><strong>SLA/SLO/SLI</strong>: 서비스 약속/목표/지표(신뢰성 관리)</li>



<li><strong>Incident Response</strong>: 장애 대응 프로세스(탐지→완화→복구→회고)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✅ DevOps에서 특히 자주 나오는 “핵심 세트” 5개</h2>



<ul class="wp-block-list">
<li><strong>CI/CD</strong>: 자동화의 중심</li>



<li><strong>Docker/K8s</strong>: 배포 단위와 운영 자동화</li>



<li><strong>IaC</strong>: 인프라를 코드로 재현 가능하게</li>



<li><strong>Observability</strong>: 장애를 “빨리 찾고, 빨리 고치기”</li>



<li><strong>SLO 기반 운영</strong>: 목표를 숫자로 관리</li>
</ul>



<p></p>
<p>게시물 <a href="https://howinfo.kr/devops-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-devops-essentials/">DevOps 필수 용어 50 (DevOps Essentials)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/devops-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-devops-essentials/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백엔드 필수 용어 50 (Back-end Essentials)</title>
		<link>https://howinfo.kr/%eb%b0%b1%ec%97%94%eb%93%9c-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-back-end-essentials/</link>
					<comments>https://howinfo.kr/%eb%b0%b1%ec%97%94%eb%93%9c-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-back-end-essentials/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 10:42:48 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[JWT]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[데이터베이스]]></category>
		<category><![CDATA[모니터링]]></category>
		<category><![CDATA[백엔드]]></category>
		<category><![CDATA[서버]]></category>
		<category><![CDATA[인증]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1559</guid>

					<description><![CDATA[<p>1) 서버·웹 기본 (1~10) 2) API 설계·통신 (11~20) 3) 인증·보안 (21~30) 4) 데이터베이스(DB) (31~40) 5) 캐시·메시징·확장 (41~45) 6) 배포·운영(DevOps) (46~50)...</p>
<p>게시물 <a href="https://howinfo.kr/%eb%b0%b1%ec%97%94%eb%93%9c-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-back-end-essentials/">백엔드 필수 용어 50 (Back-end Essentials)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">1) 서버·웹 기본 (1~10)</h2>



<ol class="wp-block-list">
<li><strong>Server(서버)</strong>: 요청을 받고 처리해 응답을 주는 컴퓨터/프로그램</li>



<li><strong>Client(클라이언트)</strong>: 서버에 요청하는 쪽(브라우저, 앱 등)</li>



<li><strong>HTTP</strong>: 웹 통신 규약(요청/응답의 규칙)</li>



<li><strong>HTTPS</strong>: TLS로 암호화된 HTTP(보안 강화)</li>



<li><strong>Request / Response</strong>: 요청 / 응답(백엔드의 기본 흐름)</li>



<li><strong>Header / Body</strong>: 부가정보 / 실제 데이터(JSON 등)</li>



<li><strong>Status Code</strong>: 응답 결과 코드(200, 400, 401, 404, 500 등)</li>



<li><strong>URI / URL</strong>: 자원 식별자 / 자원 위치</li>



<li><strong>DNS</strong>: 도메인 → IP로 변환하는 시스템</li>



<li><strong>Port(포트)</strong>: 한 서버 안에서 서비스를 구분하는 번호(80, 443 등)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2) API 설계·통신 (11~20)</h2>



<ol start="11" class="wp-block-list">
<li><strong>API</strong>: 기능을 외부에서 사용하게 하는 인터페이스</li>



<li><strong>Endpoint</strong>: API 주소(예: <code>/api/users</code>)</li>



<li><strong>REST</strong>: 자원 중심 설계 스타일(HTTP 메서드 활용)</li>



<li><strong>CRUD</strong>: Create/Read/Update/Delete(기본 데이터 작업)</li>



<li><strong>JSON</strong>: 데이터 교환 포맷(가장 흔함)</li>



<li><strong>Serialization</strong>: 객체 → 전송 가능한 형태(JSON)로 변환</li>



<li><strong>Validation</strong>: 입력값 검증(보안/품질에 매우 중요)</li>



<li><strong>Pagination</strong>: 목록을 페이지로 나눠 제공</li>



<li><strong>Filtering/Sorting</strong>: 조건 검색/정렬(쿼리 파라미터로 구현)</li>



<li><strong>Rate Limit</strong>: API 호출 횟수 제한(남용/공격 방지)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3) 인증·보안 (21~30)</h2>



<ol start="21" class="wp-block-list">
<li><strong>Authentication(인증)</strong>: “너 누구야?”(로그인 확인)</li>



<li><strong>Authorization(인가)</strong>: “이거 할 권한 있어?”</li>



<li><strong>Session(세션)</strong>: 서버가 로그인 상태를 관리하는 방식</li>



<li><strong>Cookie(쿠키)</strong>: 브라우저가 저장하는 작은 데이터(세션ID 등)</li>



<li><strong>Token(토큰)</strong>: 인증 정보를 담아 전달하는 값</li>



<li><strong>JWT</strong>: 토큰 형식(서명으로 위변조 방지, stateless에 유리)</li>



<li><strong>OAuth 2.0</strong>: 외부 로그인/권한 위임 표준(구글 로그인 등)</li>



<li><strong>CORS</strong>: 다른 출처 요청을 제어하는 브라우저 보안 정책</li>



<li><strong>Hash(해시)</strong>: 되돌릴 수 없는 변환(비밀번호 저장에 사용)</li>



<li><strong>Encryption(암호화)</strong>: 키로 암·복호화 가능한 변환(민감데이터 보호)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4) 데이터베이스(DB) (31~40)</h2>



<ol start="31" class="wp-block-list">
<li><strong>DB(Database)</strong>: 데이터 저장소</li>



<li><strong>RDBMS</strong>: 관계형 DB(MySQL, PostgreSQL 등)</li>



<li><strong>SQL</strong>: 관계형 DB 질의 언어</li>



<li><strong>NoSQL</strong>: 비관계형 DB(MongoDB, Redis 등)</li>



<li><strong>Schema(스키마)</strong>: 테이블 구조(컬럼/타입/제약조건)</li>



<li><strong>Index(인덱스)</strong>: 조회 성능을 올리는 “목차”(쓰기 비용 증가 가능)</li>



<li><strong>Transaction(트랜잭션)</strong>: 여러 작업을 하나로 묶어 처리(롤백 가능)</li>



<li><strong>ACID</strong>: 트랜잭션의 4대 성질</li>



<li><strong>Join</strong>: 여러 테이블을 연결해 조회</li>



<li><strong>ORM</strong>: 객체로 DB를 다루게 해주는 도구(JPA, Hibernate 등)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5) 캐시·메시징·확장 (41~45)</h2>



<ol start="41" class="wp-block-list">
<li><strong>Cache(캐시)</strong>: 자주 쓰는 데이터를 빠르게 저장(성능 개선)</li>



<li><strong>Redis</strong>: 대표적인 인메모리 캐시/세션/큐 활용 DB</li>



<li><strong>Queue(큐)</strong>: 작업을 순서대로 처리하는 구조</li>



<li><strong>Message Broker</strong>: 메시지를 중계하는 시스템(RabbitMQ, Kafka 등)</li>



<li><strong>Async(비동기)</strong>: 기다리지 않고 다음 작업 진행(메일 발송/알림 등)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6) 배포·운영(DevOps) (46~50)</h2>



<ol start="46" class="wp-block-list">
<li><strong>CI/CD</strong>: 빌드·테스트·배포 자동화 파이프라인</li>



<li><strong>Container(컨테이너)</strong>: 실행 환경을 묶어 어디서나 동일 실행</li>



<li><strong>Docker</strong>: 컨테이너 생성/실행 도구</li>



<li><strong>Kubernetes(K8s)</strong>: 컨테이너 오케스트레이션(배치/스케일링)</li>



<li><strong>Monitoring/Logging</strong>: 운영 상태 관측/기록(Prometheus, Grafana, ELK 등)</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✅ “헷갈리는 핵심 5개” 한 줄 정리</h2>



<ul class="wp-block-list">
<li>인증 vs 인가: <strong>누구냐 / 권한 있냐</strong></li>



<li>세션 vs 토큰: <strong>서버가 상태 저장 / 클라가 증명서 들고 다님</strong></li>



<li>SQL vs NoSQL: <strong>관계형 / 비관계형</strong></li>



<li>캐시 vs DB: <strong>빠른 임시 저장 / 원본 저장</strong></li>



<li>동기 vs 비동기: <strong>기다림 / 안 기다림</strong></li>
</ul>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%eb%b0%b1%ec%97%94%eb%93%9c-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-back-end-essentials/">백엔드 필수 용어 50 (Back-end Essentials)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%eb%b0%b1%ec%97%94%eb%93%9c-%ed%95%84%ec%88%98-%ec%9a%a9%ec%96%b4-50-back-end-essentials/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🐳 Docker 설치 방법 (Ubuntu 기준) – Docker 개념부터 설치까지 한 번에 정리</title>
		<link>https://howinfo.kr/%f0%9f%90%b3-docker-%ec%84%a4%ec%b9%98-%eb%b0%a9%eb%b2%95-ubuntu-%ea%b8%b0%ec%a4%80-docker-%ea%b0%9c%eb%85%90%eb%b6%80%ed%84%b0-%ec%84%a4%ec%b9%98%ea%b9%8c%ec%a7%80-%ed%95%9c-%eb%b2%88/</link>
					<comments>https://howinfo.kr/%f0%9f%90%b3-docker-%ec%84%a4%ec%b9%98-%eb%b0%a9%eb%b2%95-ubuntu-%ea%b8%b0%ec%a4%80-docker-%ea%b0%9c%eb%85%90%eb%b6%80%ed%84%b0-%ec%84%a4%ec%b9%98%ea%b9%8c%ec%a7%80-%ed%95%9c-%eb%b2%88/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 00:53:34 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[DockerCompose]]></category>
		<category><![CDATA[IT기초]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[도커설치]]></category>
		<category><![CDATA[리눅스서버]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1449</guid>

					<description><![CDATA[<p>Ubuntu 서버나 PC를 사용하다 보면“서비스 하나 설치하려다 환경 꼬였다…” 이런 경험 한 번쯤 있으시죠? 이럴 때 가장 많이 쓰이는 도구가...</p>
<p>게시물 <a href="https://howinfo.kr/%f0%9f%90%b3-docker-%ec%84%a4%ec%b9%98-%eb%b0%a9%eb%b2%95-ubuntu-%ea%b8%b0%ec%a4%80-docker-%ea%b0%9c%eb%85%90%eb%b6%80%ed%84%b0-%ec%84%a4%ec%b9%98%ea%b9%8c%ec%a7%80-%ed%95%9c-%eb%b2%88/">🐳 Docker 설치 방법 (Ubuntu 기준) – Docker 개념부터 설치까지 한 번에 정리</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ubuntu 서버나 PC를 사용하다 보면<br>“서비스 하나 설치하려다 환경 꼬였다…” 이런 경험 한 번쯤 있으시죠?</p>



<p>이럴 때 가장 많이 쓰이는 도구가 바로 <strong>Docker</strong>입니다.<br>이 글에서는 <strong>Docker가 무엇인지</strong>부터<br>👉 <strong>Ubuntu에서 Docker를 설치하고 정상 동작 확인하는 방법</strong>까지<br>초보자 기준으로 차근차근 정리했습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker란 무엇인가?</h2>



<p>Docker는 **애플리케이션을 컨테이너(Container)**라는 단위로 실행할 수 있게 해주는 도구입니다.</p>



<h3 class="wp-block-heading">쉽게 비유하면</h3>



<ul class="wp-block-list">
<li>예전 방식:<br>👉 프로그램마다 직접 설치 (환경 충돌 잦음)</li>



<li>Docker 방식:<br>👉 프로그램 + 실행 환경을 <strong>한 박스에 담아서 실행</strong></li>
</ul>



<p>그래서 이런 장점이 있습니다.</p>



<h3 class="wp-block-heading">Docker의 장점</h3>



<ul class="wp-block-list">
<li>✔ 설치/삭제가 매우 간단</li>



<li>✔ 서버 환경이 달라도 동일하게 실행</li>



<li>✔ 테스트·운영 환경 분리 쉬움</li>



<li>✔ 홈서버, NAS, 클라우드 모두 활용 가능</li>
</ul>



<p>👉 요즘 <strong>홈서버, NAS, AI 서버</strong>에서 Docker는 거의 필수입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker와 가상머신(VM)의 차이</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>구분</th><th>Docker</th><th>가상머신</th></tr></thead><tbody><tr><td>실행 방식</td><td>OS 공유</td><td>OS 전체 포함</td></tr><tr><td>속도</td><td>빠름</td><td>상대적으로 느림</td></tr><tr><td>용량</td><td>작음</td><td>큼</td></tr><tr><td>관리</td><td>간단</td><td>복잡</td></tr></tbody></table></figure>



<p>👉 <strong>가볍고 빠른 서비스 운영</strong>이 목적이라면 Docker가 훨씬 유리합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker 설치 전 확인 사항</h2>



<p>아래 환경을 기준으로 설명합니다.</p>



<ul class="wp-block-list">
<li>✔ Ubuntu 20.04 / 22.04 / 24.04</li>



<li>✔ sudo 권한 사용자</li>



<li>✔ 인터넷 연결</li>
</ul>



<p>버전 확인:</p>



<pre class="wp-block-code"><code>lsb_release -a
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Ubuntu에서 Docker 설치 방법</h2>



<h3 class="wp-block-heading">1️⃣ 기존 패키지 업데이트</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt upgrade -y
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2️⃣ Docker 설치에 필요한 패키지 설치</h3>



<pre class="wp-block-code"><code>sudo apt install -y ca-certificates curl gnupg lsb-release
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3️⃣ Docker 공식 GPG 키 추가</h3>



<pre class="wp-block-code"><code>sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">4️⃣ Docker 공식 저장소 추가</h3>



<pre class="wp-block-code"><code>echo \
"deb &#91;arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">5️⃣ Docker 엔진 설치</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker 정상 설치 확인</h2>



<h3 class="wp-block-heading">버전 확인</h3>



<pre class="wp-block-code"><code>docker --version
</code></pre>



<p>정상이라면 아래처럼 출력됩니다.</p>



<pre class="wp-block-code"><code>Docker version XX.X.X, build XXXXX
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">테스트 컨테이너 실행</h3>



<pre class="wp-block-code"><code>sudo docker run hello-world
</code></pre>



<p>✔ 정상 출력되면 Docker 설치 완료입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">sudo 없이 Docker 사용하기 (중요)</h2>



<p>매번 <code>sudo</code> 붙이기 귀찮다면 사용자 권한을 추가합니다.</p>



<pre class="wp-block-code"><code>sudo usermod -aG docker $USER
</code></pre>



<p>적용을 위해 <strong>로그아웃 후 재로그인</strong> 또는 재부팅하세요.</p>



<p>확인:</p>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker Compose란?</h2>



<p>Docker Compose는<br>👉 <strong>여러 개의 컨테이너를 한 번에 관리</strong>하기 위한 도구입니다.</p>



<p>예를 들면:</p>



<ul class="wp-block-list">
<li>웹서버 + DB</li>



<li>AI 서버 + API</li>



<li>홈서버 서비스 묶음</li>
</ul>



<p>지금 설치한 Docker에는 <strong>Compose 플러그인</strong>이 이미 포함되어 있습니다.</p>



<p>확인:</p>



<pre class="wp-block-code"><code>docker compose version
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Docker를 어디에 활용할 수 있을까?</h2>



<p>Docker는 이런 곳에 특히 많이 쓰입니다.</p>



<ul class="wp-block-list">
<li>✔ 홈서버 / NAS 서비스 운영</li>



<li>✔ 웹서버 (WordPress, Nginx)</li>



<li>✔ AI 서버 (Whisper, Stable Diffusion 등)</li>



<li>✔ 자동화 도구 (n8n, Home Assistant)</li>



<li>✔ 테스트 환경 구성</li>
</ul>



<p>👉 <strong>한 번 익혀두면 서버 운영 난이도가 확 내려갑니다.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">마무리 정리</h2>



<ul class="wp-block-list">
<li>Docker는 <strong>환경 충돌 없이 서비스 실행</strong>을 가능하게 해주는 도구</li>



<li>Ubuntu에서는 <strong>공식 저장소 설치가 가장 안정적</strong></li>



<li>sudo 없이 사용 설정하면 훨씬 편리</li>



<li>Docker Compose까지 익히면 서버 관리가 쉬워짐</li>
</ul>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%f0%9f%90%b3-docker-%ec%84%a4%ec%b9%98-%eb%b0%a9%eb%b2%95-ubuntu-%ea%b8%b0%ec%a4%80-docker-%ea%b0%9c%eb%85%90%eb%b6%80%ed%84%b0-%ec%84%a4%ec%b9%98%ea%b9%8c%ec%a7%80-%ed%95%9c-%eb%b2%88/">🐳 Docker 설치 방법 (Ubuntu 기준) – Docker 개념부터 설치까지 한 번에 정리</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%f0%9f%90%b3-docker-%ec%84%a4%ec%b9%98-%eb%b0%a9%eb%b2%95-ubuntu-%ea%b8%b0%ec%a4%80-docker-%ea%b0%9c%eb%85%90%eb%b6%80%ed%84%b0-%ec%84%a4%ec%b9%98%ea%b9%8c%ec%a7%80-%ed%95%9c-%eb%b2%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
