컨테이너는 원래 사용 목적이 영구적 사용이 아닌 테스트나 연구용으로 만들어졌습니다. 생성 자체도 쉽고 삭제 자체도 쉽습니다.
컨테이너 안의 데이터가 중요한 경우는 외부나 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/
'CLOUD > CUBE' 카테고리의 다른 글
도커(Docker) - Dockerfile 빌드 및 이미지 생성 (0) | 2021.10.23 |
---|---|
도커(Docker) 컨테이너(container) 이미지(image) 만들기 (0) | 2021.10.18 |
도커(Docker) 명령어 - 네트워크(network) (0) | 2021.10.16 |
Docker 명령어 및 컨테이너 실행 (0) | 2021.10.11 |
Docker 설치 및 테스트 (0) | 2021.10.10 |