freeseaboy 님의 멋있어 지려 노력하는 블로그

도커(5) 도커 집 금고 하이스트 하기~! 본문

컴퓨터 & 서버/리눅스

도커(5) 도커 집 금고 하이스트 하기~!

freeseaboy 2024. 11. 10. 01:08
반응형

자 3교시 도커 관련해서 공부 및 리뷰를 한다..

내용은 아마 저장소관련 주제일듯 하니 긴장하고 임하자

저장소는 쉬워보이지만 상당히 복잡하고 까딱하면 네트워크마냥

꼬이기 쉽상이니 항상 김장김치 하듯 긴장하면서 보자는 뻥이고

제일 쉽다 ... ㅋㅋㅋㅋㅋㅋㅋㅋ

그럼바로 ㄱㄱ

스크립밑

!!!긴급!!!

알수없는 이유로 동영상이 차단되어 우회 대피소 

N기업 블로그로 링크 걸어 두었습니다.

https://blog.naver.com/iwseo7114/223653970758

 

도커(5) 도커 집 금고 하이스트 하기~!

자 3교시 도커 관련해서 공부 및 리뷰를 한다.. 내용은 아마 저장소관련 주제일듯 하니 긴장하고 임하자 저...

blog.naver.com

##########################################################

자 안녕하세요 오늘 3교시 도커 시간입니다..

원래 좀 빨리 업로드 하고 교육 하고 이럴라 했는데

오늘 일정이 좀 있다보니깐 늦어졌네요 ㅋㅋ

무튼 도커 오늘 할거에요...

자 노래한곡 큐..

- 도커 볼륨

- 호스트 볼륨 공유

- 볼륨 컨테이너

이렇게 할예정입니다.ㅋ

도커이미지로 컨테이너를 생성하면

읽기전용으로 된다...

그니깐

VM 쓰다면 일반 이미지 파일있죠?

그게 도커 이미지에요..그리고

그걸로 인스턴스 생서하죠??그게 컨테이너에요.

즉 도커이미지는 읽기만 오로지

그리고 반대로 컨테이너를 읽고 쓰기 다됨..

이말입니다

---------------------

| 나이미지 |

---------------------

----------------------------------

| Docker Container | EndUser

----------------------------------

| Docker Images | Layer2

----------------------------------

| Docker Engine | Layer1

----------------------------------

대략 추상화 하면 이런구조라는겁니다

맞나요?그냥 이렇게 생각하세요 이해가 안되면

하지말고 그냥 머리에 주입해요 그럼 편함요 ㅋ

그래서 볼륨이란게 있어요..

볼륨이 뭐냐면...컨테이너를 삭제하면

모든 정보가 다날라가요....진짜로큰일이죠?

공중분해됨 공중제비?ㅋ수제비?ㅋ

컨테이너 데이터를 영구적으로 저장할수 있는 기능이

바로 볼륨을 이용하는거다,,,,

볼륨 종류

- 호스트

- 컨테이너

- 도커 관리전용

우리가 1차적으로 실습할건 호스트 볼륨

#docker run -it -v /freeA/docker:/data --name testVolume ubuntu /bin/bash

#cd /data/

[호스트]---[컨테이너] 볼륨

즉 호스트 볼륨을 공유해서 쓰기에 컨테이너 사라져도

데이터가 고대로 보존이 가능하다..이말입니다.

#docker volume create vol_con

#docker run -d -v vol_con:/data --name testA ubuntu /bin/bash -c "while true; do sleep 1000; done"

#docker run -d -v vol_con:/data --name testB ubuntu /bin/bash -c "while true; do sleep 1000; done"

#docker exec -it testA /bin/bash

#cd /data

#touch hellow

.

.

.

.

이렇게 하면 다른컨테이너에서 데이터가 공유됩니다

[공유컨테이너]------------[컨테이너] 공유 컨테이너 1

|

------------------[컨테이너] 공유 컨테이너 2

[root@C3 docker]# docker run -d --name volume_container -v /home ubuntu /bin/bash -c "while true; do sleep 1000; done"

b8e7c962ffe654be4c21c2e3d747cb458cb89ebf67acc33932428d55f87aeee6

[root@C3 docker]#

[root@C3 docker]# docker run -d --name userA --volumes-from volume_container ubuntu /bin/bash -c "while true; do sleep 1000; done"

e1a0628252d1df240784633cb4bb78a0dd0992fbc5e45ff66160ae92d6183d5b

[root@C3 docker]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e1a0628252d1 ubuntu "/bin/bash -c 'while…" 20 seconds ago Up 18 seconds userA

b8e7c962ffe6 ubuntu "/bin/bash -c 'while…" 2 minutes ago Up 2 minutes volume_container

[root@C3 docker]#

root@e1a0628252d1:/# ls

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

root@e1a0628252d1:/# cd /home

root@e1a0628252d1:/home# ls

ubuntu

root@e1a0628252d1:/home# touch seeMe?

root@e1a0628252d1:/home# ls

'seeMe?' ubuntu

root@e1a0628252d1:/home# read escape sequence

[root@C3 docker]# docker exec -it volume_container /bin/bash

root@b8e7c962ffe6:/# cd /home/

root@b8e7c962ffe6:/home# ls

'seeMe?' ubuntu

root@b8e7c962ffe6:/home#

"Mounts": [

{

"Type": "volume",

"Name": "8d1d9e94da7d2fd4c88b50bbdbe21c3e3d9f0510aaffa04ad82aa46fa054ff3e",

"Source": "/var/lib/docker/volumes/8d1d9e94da7d2fd4c88b50bbdbe21c3e3d9f0510aaffa04ad82aa46fa054ff3e/_data",

"Destination": "/home",

"Driver": "local",

"Mode": "",

"RW": true,

"Propagation": ""

}

],

유저가 볼륨 컨테이너를 공유해서 쓰고있다.

[컨테이너A]----------------[컨테이너B] A가 B의 디렉토리를 마운트

컨테이너가 외부 저장소를 이용하도록 설계하는 기법을

= 스테이트리스 라고함.

이와 반대경우 즉 컨테이너에 저장소가 있는 경우는

스테이트풀 하다라고 말한다. 이런방식은 매우 불량하니 조심할것

자 오늘 이렇게 여러종류의 컨테이너에서 저장소를

이용하는 법을 알아봤어요..물론 지금 당장 이해는 되지만

이것저것 공부하고 막 하다보면 또 까먹어요..그럴때는

다시 되돌아가서 보면서 이해하면 더좋겠죠??

무튼 오늘 도커에 관한 재미있는 저장소 이용법 봐주셔서

감사 ㅋㅋㅋ 다음에는 도커 네트워크 관련된걸 할거같으니

미리 준비하시길 바랍니다..ㅋㅋ

수고링~

##########################################################

도커
반응형