#####.overlay
#.유니온 파일 시스템 (UFS)
#. 여러가지 층을 두고 했다가 나줃ㅇ에 하나로 합친다는 의미
#####. linux netfilter subsystem
#. 스위치 라우터다 컴퓨터이다. 공유기도 OS가 올라가고
#. iptables라는 명령어로
#. 링크 레이어 맥어드레스 소스, 타겟 주소 스위치
#. network 레이어
ㅁ. 라우터 소스IP와 타켓 IP
#. iptables -t filter -vnL
#. yum install -y bash-completion
#####.도커 용어
#. 이미지
ㅁ. 도커에서는 파일 시스템을 이미지라고 한다.
#. 레포지토리
ㅁ. 이미지를 구분짓는 이름
#. 태그
ㅁ. 레포지토리의 버전이름
#. 레지스트리
ㅁ. 이미지들을 네트워크 어디선가에서 호스팅한다.
ㅁ. 클레스와 인스턴스 관계와 비슷하다.
ㅁ. 퍼블릭, 프라이빗
#. 컨테이너
ㅁ. 도커 이미지의 런타임 인스턴스
ㅁ. 레디스 서버를 컨테이너로 실행 하겠다.
ㅁ. 이미지가 없으면 네트워크 어딘가에서 다운로드한다.
ㅁ. 실행파일 라이브러리 설정들이 다 있다.
ㅁ. 독립된 파일을 실행할 수 있게 하는 것을 컨테이너라고 한다.
######.docker container ls -a
#. 도커의 목록을 조회할 수 잇다.
#. docker container run -it centos:7.6.1810
#. 위 명령어를 입력하면 없다라고 나오고 hub.com이라는 곳에서 알아서 받아온다.
#. 그럼 도커 컨테이너 리스트에 추가 등록 되는 것을 볼 수 있다.
#####. 호스트 OS의 컨테이너
#.는 하나의 process로 관리한다.
#.컨테이너 에서 ps -ef를 해보면 모든 프로세스는 1개 뜬다.
#. 결국에는 호스트에서 컨테이너를 관리한다.
#. 컨테이너의 eth0과 vethc02164는 쌍을 이룬다.
#. yum install -y bridge-utils
#. hostname 명령어 로 격리 된 것을 확인할 수 있다.
#. brctl show
#####.nautilus로 살펴보기
#.pc/ var / lib / docker
#. merged, overlay 등등이 있다.
#. pc/ sys/ fs/ cgroup/
#. 컨테이너 내부구조는 프로세스로 돌리고 task를 열어보면 컨테이너의 첫번째 프로세스는 bash이다.
#. 격리된 환경을 제공함을 알 수 있다.
#. /var/lib/docker/overlay2/d273a2741d9f2a973bfd40183620d182fa53125b8f74e4263a174844a2d5d40c/merged
#####. auto scaling 과정에서 container의 장점
#. VM과는 다르게 프로세스로 돌기 때문에 부팅 시간 없이 바로바로 적용할 수 있다.
#####. 도커 명령어 작성시 CLI 포맷
#. Doker CLI
#. context
#. command
#. repository
#. tag
#. process to run inside container
#. docker / container / run / centos:latest / ping -c 2 127.0.0.1
#. CLI / context / com / repo :tag /process ro run insde container
#####. docker 명령어 종류
#. docker container ls -a (최근)
#. docker ps -a 는 같은 명령 (옛날)
#. 도커의 명령어가 많아지면서 일관성을 갖게 해준다. 최신은
#. cgroup은 컨트롤 그룹 - cpu memory 어떻게 관리 할것이냐
#####. 3번째 컨테이너 실행
#. docker run -d -p 8080:80 httpd:2.4
#. curl 텍스트 기반의 인터넷
#. iptables -t nat -vnL를 눌러보면
ㅁ. tcp dpt:8080 to 172.17.0.2:80으로 리다이렉트 한다는 의미이다.
#. 도커는 가상 네트워크 포트포워딩의 옵션이 있다.
# -f 두가지 의미 force follow
#. docker container rm -f $(docker conatiner ls -aq)
#. -aq는 모든 것의 아이디만 보여준다
#####. 컨테이너의 궁극적 목적
#. 개발자가 개발한 프로젝트를 이미지화(컨테이너화) 시켜서 불러오는 것이다.
#####. 명령어
#. -d
ㅁ. 백그라운드로 시작
ㅁ. docker container run -d --name T01 tomcat:6
#. -f
ㅁ. 스트림을 끊지않고 계속 보여줄 때
#. -t
ㅁ. timestamp 옵션
ㅁ. 시간을 계속 찍어줄 때
ㅁ. docker container logs -ft T01
ㅁ. 동일한 시간 옵션을 주기 위함이고 동일되서 좋은 옵션이다.
#####. 외부 사용자에게 기능 노출
#.포트를 퍼블리싱 해준다 앞쪽에 호스트 포트 뒤쪽엔 컨테이너 포트
#.리눅스 호스트 7070을 호출하면 8080 포트를 준다.
#.컨테이너는 경량의 하나의 경량 vm이다. 0~65000의 포트를 사용할 수 있다
#.반드시 쓰는 옵션 -p옵션
#. docker container run -d --name T01 -p 7070:8080 tomcat:6
#. dockerhub.com에는 거의 대부분의 오픈소스, 상용소스들의 정보들이 다 있다.
#. mysql에는 root계정을 1234로 저장해놧다고 하자
ㅁ. 항상 비번이 1234라면 보안에 취약
ㅁ. 환경변수를 이용해서 MYSQL_ROOT_PASSWORD로 바꿀 수 있다.
ㅁ. 환경변수를 넘겨야하는데 그때 사용하는 옵션이 -e
#. -w 옵션
ㅁ. working dir의 약자
ㅁ. 1번 프로세스가 bin/a.exe로 실행된다 가정할 때
ㅁ. 상대 경로로 갈 대 pwd가 중요하다.
ㅁ. 상대 경로로 들어가는 것들이 가끔 있다 그럴 떄 쓰인다.
#####. prune
#. 쓸 때 없는 나뭇가지를 잘라낼 때 쓰는 단어
#. 정지된 컨테이너를 일괄적으로 삭제할 때 사용한다.
#. docker container run centos * 4해서 컨테이너를 많이띄운다음
#. docker container prune을 하면 지워준다.
#####.pause
#. docker container run -d --name T01 tomcat:6
#. docker container ls -a
#. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4914c9172f93 tomcat:6 "catalina.sh run" 21 seconds ago Up 20 seconds 8080/tcp
#. docker container pause 4914c9172f93
ㅁ. 스케줄러가 할당을 안해줘서 정지
#. docker container unpause 4914c9172f93
#####.container cp
#. 기존에 있는 컨테이너를 로컬로 가져오는 등의 것을 뜻함
#. echo "Hello Docker" > hello.html
#. docker container run -d --name=web httpd:2.4
#. docker container cp hello.html web:/usr/local/apache2/htdocs
#. curl http://172.17.0.2/hello.html
ㅁ. Hello Docker
#####.container exec
#. container안에서 아파치 웹서버 컨테이너에서 어떤 명령을 수행
#. docker container exec web bash
#. docker container exec -it web bash
#. -i --interactive
ㅁ. Keep STDIN open even if not attached
#. -t --tty
ㅁ. Allocate a pseudo-TTY
#####.diff
#. 컨테이너를 시작하면 라이터블 레이어의 변경내용을 확인할 수 있다.
#####.inspect
#. 컨테이너의 상세 정보를 볼 수 있다.
#. 상세정보를 json타입으로 보여준다.
#. docker container inspect web
#. merge 머지로 된 디렉토리
#. diff 등등
#. IP정보 등등
#. 해당 컴퓨터의 IP정보를 쉽게 확인 할 때 --format옵션
#. docker container inspect --format="{{.NetworkSettings.Networks.bridge.IPAddress}} web
#####. 주목적
#. 아까도 얘기했듯이 프로젝트를 도커에서 돌릴 수 있게 하는 것이 목적이다.
#. 컨테이너 운영하는 방법으로
#####. UFS
#. 머지란 layer1에 어떻게 뭘 만들어놓고
#. layer2에 테두리를 만들어 놓고
#. layer3에서는 그림을 그려놓고
#. 다 합친다는 것을 의미한다.
#. 이것을 유니온 파일 시스템이라고 한다.
#####. writable
#.merged dir
#. upper dir
#. lower dir
#. 아래에서 위로 합쳐지는 과정이다.
ㅁ. container layer - > upper idr
ㅁ. image layer -> lower dir
'IT_Term' 카테고리의 다른 글
[사내용] 리포트 작성 요령 (0) | 2023.04.26 |
---|---|
[IT_Turm] 2기가 이상 되는 txt파일을 원하는 줄만큼 분할 하는 방법 (0) | 2023.04.18 |
[IT_Term] 중복_애플리케이션(항목)_삭제(Excel) (0) | 2023.04.11 |
[IT_Term] CPU, Memory, HDD의 상관 관계 비유 (0) | 2023.03.10 |
[IT_Term] Scouter 설치 Was 연동 중간저장 (0) | 2023.03.09 |