도커 사용법 · 6 min read · Nov 24, 2025

Docker: 실용적으로 사용하는 방법 - 3부

3부: WordPress 및 DokuWiki 컨테이너로 메모장 만들기

서문

첫 번째 부분에서는 도커 컨테이너가 어떻게 작동하는지와 다른 소프트웨어 가상화 기술과의 차이점에 대해 이야기했으며, 두 번째 부분에서는 도커 컨테이너 관리를 위한 시스템을 준비했습니다.

이번 부분에서는 도커 이미지를 사용하고 실용적인 방법으로 컨테이너를 생성하는 방법을 시작하겠습니다. 다시 말해, DokuWiki 또는 WordPress 위에서 실행되는 웹 기반의 고급 개인 메모장을 만들 것입니다. 편한 것을 선택하시면 됩니다.

도커 컨테이너 실행 방법

먼저 도커 엔진이 필요한 대로 작동하는지 확인하기 위해 “Hello world” 이미지를 다운로드하고 이를 기반으로 컨테이너를 생성해야 합니다.

이미지에 대해 이야기할 때는 정지된 상태를 의미하고, 컨테이너에 대해 이야기할 때는 도커 이미지의 실행 인스턴스를 의미합니다. 이전 부분에서 이야기한 비유로, 도커 이미지는 리눅스 배포판의 ISO 파일과 같고, 컨테이너는 USB 메모리에서 실행하는 것처럼 ISO 파일의 라이브 세션과 같습니다.

“Hello world” 이미지를 다운로드하고 실행하려면 터미널에 다음을 입력하세요.

sudo docker run hello-world

이 명령은 Hello World 이미지를 다운로드하고 컨테이너에서 실행합니다. 컨테이너가 실행되면 정보 메시지를 출력한 후 종료됩니다(즉, 종료됨을 의미합니다).

Docker Hello World 예제.

시스템에 몇 개의 이미지가 있는지 확인하려면 간단히 다음을 실행합니다.

sudo docker images

도커 이미지 표시.

어떻게 내 시스템이 이 Hello World 이미지를 찾았는지, 어디에서 왔는지 궁금할 수 있습니다. 바로 여기서 도커 허브가 등장합니다.

도커 허브 소개

도커 허브는 컨테이너 이미지 검색, 이미지 빌드 및 이러한 이미지의 배포를 위한 클라우드 기반 중앙 리소스입니다.
특히 도커 허브는 나중에 더 논의할 유용한 기능과 기능을 제공합니다.

현재 우리는 하나의 기능에 집중할 것이며, 이는 도커 이미지를 찾고 다운로드하는 것입니다.

도커 이미지 검색

“다운로드 및 실행할 준비가 된 도커 이미지“를 검색하려면 온라인 도커 허브를 방문하거나 터미널을 사용할 수 있습니다. 웹 허브에서 도커 이미지를 다운로드할 수는 없지만, 이미지가 어떻게 빌드되고 유지되는지 등에 대해 더 많이 알 수 있습니다.

따라서 이번 부분의 목적을 위해 터미널 방식을 사용하겠습니다. WordPress를 검색해 보겠습니다.

sudo docker search wordpress

도커 이미지 검색.

보시다시피 다양한 조합(예: 데이터베이스 포함 여부)으로 구축된 수많은 WordPress 도커 이미지가 있으며, 인기도 별로 평가되고 있습니다. 이들은 공식(도커 회사에서 유지 관리) 또는 자동화(개인이 빌드 및 유지 관리)된 것입니다. 누구나 계정을 만들고 자신의 사용자 정의 도커 이미지를 업로드할 수 있으며, 이는 나중에 논의할 것입니다.

도커 이미지 다운로드

이번 기사에서는 MySQL이 미리 설치된 bitnami의 최신 도커 이미지를 사용할 것입니다. 그러니 다운로드해 보겠습니다:

sudo docker pull bitnami/wordpress:latest

위 명령을 실행하면 도커 허브와 통신하여 “bitnami”라는 리포지토리가 있는지, “latest” 버전으로 태그된 “WordPress” 빌드가 있는지 물어봅니다.

도커 이미지 다운로드.

현재 우리는 WordPress 이미지만 다운로드했습니다. 이제 DokuWiki 이미지를 다운로드하여 원하는 것을 선택하거나 다음과 같이 사용할 수 있습니다.

sudo docker pull mprasil/dokuwiki

도커 이미지 아키텍처

다운로드 절차가 완료될 때까지 기다리는 동안 도커 이미지는 기본 이미지 위에 여러 레이어로 구성된 이미지임을 알 수 있습니다. 각 레이어가 다운로드되고 “마법처럼” 통합되는 것을 볼 수 있습니다. 아래 다이어그램은 4개의 스택 레이어로 구성된 Ubuntu 기본 이미지를 보여줍니다.

도커 아키텍처 - 1부

상상할 수 있듯이 각 도커 이미지는 파일 시스템 차이를 나타내는 읽기 전용 레이어 목록을 참조합니다. 나중에 우리가 할 것처럼 도커 이미지에서 새 컨테이너를 생성할 때, 기본 스택 위에 새롭고 얇은 쓰기 가능한 레이어를 추가합니다. 실행 중인 컨테이너에서 수행된 모든 변경 사항(예: 새 파일 작성, 기존 파일 수정 및 파일 삭제)은 이 얇은 쓰기 가능한 컨테이너 레이어에 기록됩니다. 아래 다이어그램은 Ubuntu 15.04 이미지를 기반으로 하는 컨테이너를 보여줍니다.

도커 아키텍처 - 레이어.

도커 이미지 삭제

이제 시스템에 몇 개의 이미지가 있는지 확인하려면

sudo docker images

를 실행하면 WordPress, DokuWiki 및 Hello World가 표시됩니다. 어떤 이유로 이미지를 제거하고 삭제(rmi)하려면 다음을 입력하면 됩니다.

sudo docker rmi 

여기서 이미지 이름은 “docker images” 명령으로 표시되는 도커의 이름입니다. 예를 들어, Hello World를 삭제하려면 다음과 같이 입력하면 됩니다:

sudo docker rmi hello-world

컨테이너는 일시적입니다

설계상 도커 컨테이너는 일시적입니다. “일시적”이라는 것은 컨테이너를 중지하고 파괴할 수 있으며, 동일한 도커 이미지에서 새 컨테이너를 빌드하고 최소한의 설정 및 구성으로 배치할 수 있음을 의미합니다.

따라서 도커 이미지에서 선호하는 컨테이너(WordPress 또는 DokuWiki)를 생성할 때 추가한 게시물이나 사진과 같은 모든 변경 사항은 컨테이너를 중지하거나 삭제하면 손실됩니다. 다시 말해, 컨테이너가 삭제되면 데이터 볼륨에 저장되지 않은 컨테이너에 기록된 모든 데이터가 컨테이너와 함께 삭제됩니다.

데이터 볼륨은 도커 호스트의 파일 시스템에 있는 디렉터리 또는 파일로, 컨테이너에 직접 마운트됩니다. 이렇게 하면 새 컨테이너로 교체하더라도 사용자의 홈 폴더에 데이터를 안전하게 보관할 수 있습니다. 데이터 볼륨을 컨테이너에 마운트할 수 있는 수는 무제한입니다. 여러 컨테이너도 하나 이상의 데이터 볼륨을 공유할 수 있습니다.

아래 다이어그램은 두 개의 컨테이너를 실행 중인 단일 도커 호스트(예: Ubuntu 15.10)를 보여줍니다. 도커 호스트의 /data에 위치한 단일 공유 데이터 볼륨도 있습니다. 이는 두 컨테이너에 직접 마운트됩니다.

도커 컨테이너 데이터

이렇게 하면 컨테이너가 삭제될 때 데이터 볼륨에 저장된 모든 데이터는 도커 호스트에 남아 있으며 새 컨테이너에 마운트할 수 있습니다.

도커 컨테이너 네트워킹

도커를 설치하면 시스템에 네트워크 장치가 생성됩니다. ifconfig 명령을 사용하여 호스트 시스템의 네트워크 스택의 일부로 이를 확인할 수 있습니다(이름은 docker0입니다).

도커 컨테이너는 격리되어 있으며, 각 컨테이너는 고유한 네트워크 속성을 가진 개별 마이크로 서비스라는 점을 이해하는 것이 중요합니다. 이를 실행하고 연결하는 방법은 컨테이너의 포트 번호를 호스트 시스템의 포트 번호에 매핑하는 것입니다.

이렇게 하면 컨테이너가 실행하는 웹 서비스를 호스트 시스템에 노출할 수 있습니다.

WordPress 컨테이너로 개인 메모장 만들기

테스트 메모장을 만드는 작업을 시작해 보겠습니다. 먼저 WordPress 이미지를 사용하여 도커 컨테이너를 생성하겠습니다.

sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpress

위 명령으로 호스트 시스템의 도커 서비스에 mynotepad라는 이름의 컨테이너를 생성하고 실행하도록 요청했습니다(–name=mynotepad), 호스트와 컨테이너의 HTTP 및 HTTPS 포트를 매핑했습니다(-p 80:80 -p 443:443) 그리고 WordPress 이미지를 사용했습니다(bitnami/wordpress).

도커 워드프레스 컨테이너

컨테이너가 초기화되면 컨테이너에 대한 정보가 표시됩니다. 이제 브라우저를 열고 http://localhost로 이동하세요.

모든 것이 잘 진행되었다면 기본 WordPress 웹사이트가 표시됩니다.

도커에서 실행 중인 워드프레스.

이미 아시겠지만 WordPress 관리 페이지에 로그인하려면 http://localhost/login으로 이동하고 기본 자격 증명인 user / bitnami를 사용하세요. 그런 다음 WordPress에서 새 사용자 또는 테스트 게시물을 생성하고 게시할 수 있습니다. 아래 이미지에서 내 테스트 게시물을 확인할 수 있습니다.

도커에서의 워드프레스

터미널로 돌아가 보겠습니다. 현재 터미널은 실행 중인 컨테이너에 바인딩되어 있습니다. Ctrl+C를 사용하여 종료할 수 있습니다. 이렇게 하면 컨테이너도 중지됩니다.

이제 사용 가능한 컨테이너를 확인해 보겠습니다. 다음 명령을 실행할 수 있습니다:

sudo docker ps -l

이전의 생성 및 실행한 컨테이너를 볼 수 있습니다.

위 이미지에서 볼 수 있듯이 컨테이너의 이름과 고유 ID와 같은 중요한 정보가 있습니다. 이렇게 하면 컨테이너를 다시 시작할 수 있습니다:

docker start mynotepad

그런 다음 다음 명령으로 도커 컨테이너가 실행하는 프로세스를 확인할 수 있습니다:

sudo docker top mynotepad

기본적으로 docker start mynotepad로 도커 컨테이너가 백그라운드에서 실행되고 있습니다. 이를 중지하려면 다음 명령을 실행할 수 있습니다.

sudo docker stop mynotepad

컨테이너와 상호작용하는 방법에 대한 자세한 내용은 도커 공식 문서에서 확인할 수 있습니다 https://docs.docker.com/engine/userguide/containers/usingdocker/

컨테이너는 어디에 있나요?

호스트 파일 시스템에서 컨테이너가 어디에 있는지 보려면 /var/lib/docker로 이동할 수 있습니다.

sudo cd /var/lib/docker  
sudo ls  
sudo cd containers  
sudo cd ID  
sudo ls

ID 번호는 생성한 실제 컨테이너를 나타냅니다.

지속적인 저장소 만들기

새로운 WordPress 컨테이너를 생성하되, 이번에는 백그라운드에 두고 WordPress 폴더를 호스트 시스템에 노출하여 파일을 추가하거나 원하지 않는 파일을 제거할 수 있도록 하겠습니다.

먼저 홈 디렉토리에 폴더를 생성합니다.

mkdir ~/wordpress-files

그런 다음 이전에 생성한 것과 동일한 이미지를 기반으로 컨테이너를 실행하고 생성합니다:

sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpress

이번에는 -d 매개변수를 사용하여 분리 모드로 설정하고 -ti 매개변수를 사용하여 나중에 상호작용할 수 있도록 터미널을 연결했습니다.

실행 중인 컨테이너를 확인하려면 다음 명령을 실행하세요.

sudo docker ps

컨테이너를 중지해 보겠습니다.

sudo docker stop mynotepad-v2

이제 docker ps 명령을 실행하면 아무것도 보이지 않을 것입니다.
다음 명령으로 다시 시작해 보겠습니다:

sudo docker start mynotepad-v2

이전에 생성한 폴더를 확인하면 WordPress 설치가 표시됩니다.

우리가 사용한 이미지에 대한 자세한 내용은 도커 허브에서 확인할 수 있습니다 https://hub.docker.com/r/bitnami/wordpress/

DokuWiki 컨테이너로 개인 메모장 만들기

이번에는 DokuWiki를 사용하여 메모장을 만들겠습니다. 이미 이미지를 다운로드했으므로 남은 것은 이를 기반으로 컨테이너를 생성하는 것입니다.

다음 명령을 실행하여 mywikipad라는 이름의 컨테이너를 생성해 보겠습니다.

docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

그런 다음 브라우저로 이동하여 다음 주소를 추가하여 위키 메모장 구성을 시작합니다:

http://localhost/install.php

DokuWiki에 대한 자세한 내용은 공식 문서에서 확인하고 필요에 맞게 위키를 사용자 정의할 수 있습니다:

https://www.dokuwiki.org/manual

도쿠위키 in 도커

도커 컨테이너 삭제

도커 컨테이너를 생성하고 시작 및 중지하는 데 익숙해지면 여러 컨테이너로 인해 생성된 테스트 혼잡을 정리해야 할 필요성을 느낄 것입니다.

컨테이너를 삭제하려면 먼저 중지한 다음 다음 명령을 실행하여 삭제해야 합니다:

docker rm 

여러 ID를 동일한 docker rm 명령에 추가하여 동시에 여러 도커 컨테이너를 삭제할 수도 있습니다.

요약

이번 부분에서는 컨테이너를 생성하고 이를 실용적인 방법으로 WordPress 또는 DokuWiki를 기반으로 개인 메모장을 만드는 방법을 배웠습니다. 우리가 생성한 컨테이너를 시작하고 중지하는 방법과 이미지 및 컨테이너를 삭제하는 방법에 대한 몇 가지 기본 명령을 살펴보았습니다.

다음 부분에서는 도커 이미지가 어떻게 생성되는지, 우리 자신의 이미지를 생성하여 살펴보겠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.