ENCORE CLOUD ARCHITECTURE TIL 4/16 Docker

Docker 리소스 삭제 명령어

docker container prune --> 컨테이너 일괄 삭제
docker volume prune --> 볼륨 일괄 삭제
docker network prune --> 네트워크 일괄 삭제
docker image prune --> 이미지 일괄 삭제삭제

Docker volume

도커 이미지로 컨테이너를 생성하고 해당 컨테이너에서 사용자가 작업을 해도 컨테이너를 삭제하면 해당 데이터도 모두 삭제된다. 이러한 문제점을 해결하는 방법 중 하나가 Docker volume을 이용하는 것이다.

직접 테스트 해보기

$ docker volume create mydb

$ docker run -d --name mydb1 -e MYSQL_ROOT_PASSWORD=1234 -v mydb:/var/lib/mysql mysql:5.7 --> /var/lib/mysql을 공유

$docker exec -it mydb1 bash --> 배쉬 쉘로 접속

# mysql -u root -p
> show databases;


초기 데이터베이스 모습

> create database hello; --> hello 데이터베이스 생성

> exit
# exit
$ docker stop mydb1 && docker rm mydb1 --> 생성한 컨테이너 삭제

$ docker run -d --name mydb2 -v mydb:/var/lib/mysql mysql:5.7  --> 컨테이너 새로 생성 및 공유폴더는 삭제 컨테이너와 동일

$ docker exec -it mydb2 bash
# mysql -u root -p
> show databases;

이렇게 기존 컨테이너에서 생성한 hello 데이터베이스를 새로 생성한 mydb2에서 확인할 수 있다.

Docker network

Docker network 종류

bridge : docker0 브릿지를 사용하는 기본 타입

host : 호스트와 네트워크를 공유

null : 네트워크가 없음

ipvlan/macvlan : 호스트의 네트워크와 컨테이너 네트워크에게 동일한 서브넷 제공 가능

overlay : Docker Swarm에서 사용하는 오버레이 네트워크

Docker network 관련 명령어

$ docker network ls

$ docker netword inspect <NAME>
 
$ docker run --network <NAME>

좋은 웹페이지 즐겨찾기