Post

9주3일차_DOCKER_네트워크_및_데이터관리

9주3일차_DOCKER_네트워크_및_데이터관리

필기 내용

네트워크

1
2
3
4
5
6
7
8
9
10
11
12
# 현재 Docker 네트워크 확인
docker network ls

# 사용자 지정 브리지 네트워크 생성
# sleep infinity : 컨테이너 내부에서 종료되지 않는 프로세스를 실행하여 유지
docker run -d --name svc1 --network bridge busybox sleep infinity
docker run -d --name svc2 --network bridge busybox sleep infinity

docker exec -it svc1 ping svc2

-------------------------------------------------
ping: bad address 'svc2'
  • 사용자 정의 네트워크를 만들면 컨테이너 이름을 통해 자동으로 통신 가능

    host 네트워크

  • Host 네트워크의 단점
    • 컨테이너 간 격리 부족 (보안 위험)
      • 모든 컨테이너가 호스트와 동일한 네트워크 환경을 공유하므로, 컨테이너 내부에서 실행된 서비스가 호스트 네트워크 전체에 영향을 미칠 수 있음.
      • 보안성이 중요한 경우 Bridge 또는 Overlay 네트워크를 사용하는 것이 더 안전함.

2. Docker 데이터 관리 및 볼륨 실습

1. Docker 데이터 관리

  • Container Storage (임시 저장, 컨테이너 삭제 시 데이터 유실)
  • Bind Mounts (호스트 디렉토리 마운트)
  • Volumes (Docker 관리 데이터 저장소)
  • Tmpfs Mount (메모리 기반 스토리지)
  1. Docker Volume vs Bind Mount
  • Tmpfs Mount (메모리 기반 스토리지) 이것에 대한 조사. Tmpfs Mount는 메모리 기반 스토리지로, 데이터를 디스크가 아닌 메모리에 저장하는 방식입니다. Docker에서 Tmpfs Mount를 사용하면 컨테이너가 종료되거나 재시작될 때 데이터가 사라지지만, 매우 빠른 I/O 성능을 제공합니다. 이는 임시 데이터를 저장하거나, 성능이 중요한 작업에 유용합니다.
  • Tmpfs Mount 사용 예시 ```sh

    Tmpfs Mount를 사용하여 컨테이너 실행

    docker run -d –name tmpfs_test –tmpfs /app busybox

컨테이너 내부에서 /app 디렉토리에 데이터 쓰기

docker exec -it tmpfs_test sh -c “echo ‘Hello Tmpfs’ > /app/test.txt”

데이터 확인

docker exec -it tmpfs_test cat /app/test.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- 이 예시에서는 /app 디렉토리가 메모리에 마운트되며, 컨테이너가 종료되면 /app 디렉토리의 데이터는 사라집니다.
## Action Plan

## 수업 내용 필기 정리.

```bash
docker volume create my_volume
docker volume ls | grep my_volume
docker run -d --name vol_test -v my_volume:/data busybox tail -f /dev/null
docker inspect my_volume  # 볼륨 상세 정보 확인
docker exec -it vol_test sh -c "echo 'Hello Volume' > /data/test.txt"
docker rm -f vol_test
docker run --rm -v my_volume:/data busybox cat /data/test.txt
  • macvlan 응근 많이 쓴다.
  • 앤서블을 쓴다면 서버 200대에 일괄 설정이 가능하다.
This post is licensed under CC BY 4.0 by the author.