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 (메모리 기반 스토리지)
- 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.
