본문 바로가기

CLOUD/CUBE

도커(Docker) 볼륨(Volume) 할당

반응형

 컨테이너는 원래 사용 목적이 영구적 사용이 아닌 테스트나 연구용으로 만들어졌습니다. 생성 자체도 쉽고 삭제 자체도 쉽습니다. 

 

컨테이너 안의 데이터가 중요한 경우는 외부나 host의 스토리지에 볼륨을 할당하여 보관하기도 합니다.

 

데이터를 보존할 폴더를 만듭니다.

 

mkdir /dbdata
mkdir /webdata

 

컨테이너를 생성 할 때 --volume 옵션으로 [host 경로]:[컨테이너 경로]를 지정하여 만듭니다.


 docker run -d --volume /webdata:/usr/local/apache2/htdocs --name myapache httpd:2.4
 docker ps

 

 

마운트가 잘 되었는지 확인을 위해 test.txt 파일을 하나 만듭니다.

 

docker exec -it myapache /bin/bash

cd htdocs/

touch test.txt
ls /webdata/



index.html 파일에 Hello를 입력합니다.
docker exec -it myapache /bin/bash

IP 검색
docker inspect myapache | grep -i address

 

접속 테스트
curl 172.17.0.2

 

테스트를 위해 컨테이너를 삭제합니다.
docker stop myapache
docker rm myapache
docker ps -a
ping 172.17.0.2

 

 

myapache2로 다시 볼륨 맵핑하여 생성 후 테스트해봅니다.
docker run -d --volume /webdata:/usr/local/apache2/htdocs --name myapache2 httpd:2.4
docker ps
curl 172.17.0.2

 

 

mysql을 생성하여 db도 간단하게 해 봅니다.

docker run -d --volume /dbdata:/var/lib/mysql --env MYSQL_ROOT_PASSWORD=mysql mysql:5.5
docker ps
docker exec -it eloquent_beaver /bin/bash

mysql -u root -pmysql

CREATE DATABASE test;

use test;

CREATE TABLE states (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, state CHAR(25));

INSERT INTO states (id, state) VALUES (NULL,'kim'),(NULL,'lee'),(NULL,'pack');

exit

ls /dbdata/

 

반응형