컨테이너

Docker 네트워크 및 볼륨 관리 실습 가이드

kkuniyo 2025. 3. 11. 16:39
반응형

Docker 네트워크 및 볼륨 관리 실습 가이드

Docker의 핵심 기능인 네트워크 및 볼륨을 활용하여 간단한 WordPress 환경을 구축하는 방법을 정리했습니다.

1. Docker 사용자 정의 네트워크 생성

docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 babo

2. 생성된 네트워크에 컨테이너 연결

docker run -itd --net babo --name aa1 alpine

# 네트워크 추가 및 삭제
docker network connect bridge aa1
docker network disconnect bridge aa1

3. 컨테이너 간 통신(Link 및 host 추가)

  • link 옵션 사용
docker run -itd --name a2 --link a1:babo alpine
  • 호스트 직접 추가
docker run -itd --add-host a2:172.17.0.3 --add-host a3:172.17.0.4 --name a1 alpine

4. 네트워크 모드 사용

  • host 모드
docker run -itd --net host --name n1 nginx
  • none 모드
docker run -itd --net none --name a1 alpine

5. MySQL 및 WordPress 환경 구축

  • MySQL 컨테이너 생성 (볼륨과 바인드 마운트 사용)
mkdir /mysql

docker run -itd -p 63306:3306 -v /mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=It12345! \
-e MYSQL_DATABASE=wordpress --name m1 mysql:8.0
  • WordPress 컨테이너 생성 및 MySQL과 연결
docker run -itd -p 65080:80 --net bridge \
-e WORDPRESS_DB_HOST=192.168.0.12:63306 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=It12345! \
-e WORDPRESS_DB_NAME=wordpress --name w1 wordpress

6. Docker Volume 관리

  • 볼륨 생성 및 활용
docker volume create babo

# 데이터 확인
touch /var/lib/docker/volumes/babo/_data/volume.txt

7. Rocky Linux 서버 간 WordPress 연동 구성

  • Rocky9-1 서버 (WordPress 컨테이너)
docker run -itd -p 65080:80 -e WORDPRESS_DB_HOST=172.17.0.2 \
-e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=It12345! \
-e WORDPRESS_DB_NAME=wordpress --name w1 wordpress
  • Rocky9-2 서버 (MySQL 컨테이너 - Host 네트워크 사용)
mkdir /mysql

docker run -itd --network host -v /mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=It12345! \
-e MYSQL_DATABASE=wordpress --name m2 mysql:8.0

# 방화벽 설정
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

8. 네이버 클라우드(Ncloud)에서 실습 환경 구축하기

  • VPC 환경 구축 및 Docker 설치
  • MySQL 및 WordPress 컨테이너 배포

9. 클라우드에서 Docker 자동 설치 및 환경 구성 스크립트

아래 스크립트를 사용하면 CentOS/Rocky Linux 환경에서 자동으로 Docker와 필요한 이미지를 설치하고 MySQL과 WordPress 환경까지 구성할 수 있습니다.

#!/bin/bash
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
docker pull mysql:8.0
docker pull wordpress
docker run -itd --network bridge -e MYSQL_ROOT_PASSWORD=It12345! -e MYSQL_DATABASE=wordpress --name m1 mysql:8.0
docker run -itd -p 65080:80 -e WORDPRESS_DB_HOST=172.17.0.2 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=It12345! -e WORDPRESS_DB_NAME=wordpress --name w1 wordpress

이 내용을 따라하면 Docker 네트워크 및 볼륨 관리 능력을 향상시킬 수 있으며, WordPress 같은 웹 서비스를 컨테이너화하여 손쉽게 관리할 수 있습니다.

반응형