카테고리 없음
도커
선인장777
2023. 11. 3. 20:37
도커란?
- 물리서버를 논리서버로 분리하여 사용 가능
- VM은 os를 새로 만드는 것이지만 도커는 os 포함하여 위에 얹는 것
- 도커는 리눅스 컨테이너에서 왔고, 하나의 프로세스이다.
- 리눅스 기반이므로 윈도우에서 사용하려면 벌쳐 박스를 설치하고 사용해야함
원리
- nameSpace
- 키 벨류 쌍의 딕셔너리 구성되어 있는 것
- pid(process id) 분리
- 네트워크 분리
- UID, MOUNT, UTS, IPC 분리
- docker0 NIC(Network Interface Controller)
- 네트워크 분리되며 같이 연결될 수 있음
- NAT, NAPT : 네트워크 포트와 IP translate
용어
- image ⇒ 웹서버, db 정의한 config파일 , 빌드와 공유 가능 , 이미지 실행시킨 것이 컨테이너
- engine ⇒ 실제 운영 담당
- client ⇒ os, db로 도커를 구분할 수 있으며 도커 바깥쪽을 client, 도커 안쪽을 server
- Host OS ⇒ 물리 서버에 설치된 OS
- Machine(Runtime Environment) ⇒ 도커가 실행되는 곳
- Compose ⇒ 컨테이너는 별도 서버라고 생각, 여러개의 컨테이너를 하나처럼 쓸 수 있게 하는것
- Registry, Hub, Swarm…
컨테이너
- 운영체제 위에 컨테이너(프로세스: 연산의 단위)가 올라가는 것
- 호스트 위에 있다보니, 폴더, 라이브러리, 아이피를 공유
- vm은 별도의 os까지 들고 올라감
- 컨테이너는 이미지를 바탕으로 뜬다
- status
- up ⇒ 도커가 떠있음(실행중)
- exit ⇒ 컨테이너 실행하고 처리하고 나옴
명령어
- docker container run <docker-image-name> <command> : 도커 실행
- docker ps -a : 모든 컨테이너의 정보
- docker ps : 현재 실행되는 컨테이너 확인 명령어
- docker system df : 디스크 사용량
- docker image ls : 이미지 정보 (=== docker images)
- docker pull — : 이미지 다운로드
- docker container run --name webserver -d -p 6080:80 nginx : webserver라는 컨테이너 이름으로 -d(detach옵션 : 백그라운드(뒤에서)로 돌리겠다.) -p(port) 6080(내포트): 80(nginX 포트) nginx(이미지 이름) 6080이 80으로 보게 해라
- docker container rm webserver : webserver container 제거
- docer container prune webserver : 멈춰있는 컨테이너는 삭제
- docker search 이미지명 : 도커 허브에서 이미지 찾음
- docker container stop 컨테이너명 : 컨테이너 중지
- exit : 컨테이너 스탑하고 나옴 === kill
- detach : 컨테이너 띄우고 나옴
- attach : 떠있는 컨테이너에 다시 들어감
- stop: 컨테이너 완전히 죽이는 것