일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- pvcreate
- Kubernetes
- 리다이렉션
- docker
- M365필터
- 엑셀파일명변경
- chmod
- lvcreate
- tar
- 같은폴더
- ssh
- swapon
- ansible
- 랜카드인식불량
- newbingai
- permission
- journalctl
- chatGPT
- nmcli
- docker network
- 프로세스
- vagrant kubernetes
- HTTPD
- 날짜변경
- vgcreate
- yum
- firewalld
- docker image
- MSBing
- mount
- Today
- Total
becool
20210810 (화) docker 명령어 본문
09:31 review
Docker, 컨테이너 가상화
컨테이너를 실행할 수 있는 실행환경
컨테이너를 쉽게 배포할 수 있는 기능을 포함 : 다른 컨테이너 배포 도구보다 많이 사용하는 이유
컨테이너 이미지 생성, 배포하기 용이한 환경제공
가상화 (Virtualization)
①서버 가상화 : 물리적인 하드웨어를 가상화
②네트워크 가상화 : 물리적인 네트워크를 가상화하는 기술
③스토리지 가상화 : 여러개의 디스크를 하나의 물리적인 디스크처럼 가상화하는 기술
④컨테이너 가상화 : OS에서 논리적인 구획을 만들고 컨테이너 간 독립적으로 애플리케이션을 실행할 수 있는 환경을 제공하는 가상화 기술
※ Host OS - Guest OS 가 Kernel을 공유
Docker 용어
컨테이너 이미지 | 컨테이너에서 애플리케이션이 실행되기 위한 실행환경을 구성하는 Application, Data, Library 등의 모임 실행되지 않은 컨테이너의 원본 |
컨테이너 | 컨테이너 이미지를 실행한 형태 컨테이너 이미지가 메모리에 로드된 상태 |
저장소(Registry) | 컨테이너 이미지를 공유하기 위한 저장 공간 |
레포지토리(Repository) | 컨테이너 이미지를 공유하기 위해 저장소(Registry) 내에 생성하는 저장 공간 애플리케이션의 다양한 이미지 버전을 포함 |
→ 각 컨테이너별로 요구하는 프로그래밍 언어 및 라이브러리의 버전이 다를 수 있으므로 각각 맞춰야하고, 각 버전간 호환성을 고려 ▶ 개발 시점에 따른, 각 버전별 지원하는 기능을 사용하기 위해 각각 다른 버전을 사용할 가능성이 매우 높으며, 추후 각 컨테이너별로 호환성을 유지하기위한 관리가 필요함.
<docker 외 비슷한 container 기술>
Linux Container (LXC)
namespace : 시스템의 리소스 격리를 제공하는 리눅스 커널의 기능
cgroups : 프로세스를 그룹단위로 관리할 수 있는 기술
namespace, cgroups 등의 기술을 통한 프로세스들 간의 격리 제공
SolarisOS(Oracle, Sun microsystem)
SolarisOS에서는 컨테이너 가상화 기술도구가 있음.
Docker 명령어
$ docker search 이미지 | 도커 컨테이너 이미지 검색 ( 레지스트리 ) |
$ docker image pull 이미지[:TAG] | 도커 컨테이너 이미지 다운로드 |
$ docker images | 도커 컨테이너 이미지 목록 |
$ docker container ls | 도커 컨테이너 목록(실행중) |
$ docker container ls -a | 도커 컨테이너 목록 (실행중 + 비 실행중) |
$ docker container create | 도커 컨테이너 생성 (실행x) |
$ docker container start | 도커 컨테이너 실행 (이미 생성한 컨테이너) |
$ docker container run | 도커 컨테이너 실행 (컨테이너가 존재하지 않는 경우 (생성+실행) |
foreground ( -i -t ) | |
background ( -d -t ) | |
$ docker container attach | 컨테이너 내부 진입 |
$ docker container exec | 컨테이너에 새로운 프로세스 실행 |
$ docker container exec -it --name CONTAINER /bin/bash | Bash Shell 실행 |
$ docker containver pause CONTAINER | 컨테이너 일시 정지 ( unpause : 해제 ) |
$ docker container cp | 컨테이너와 host 간의 파일 복사 ( container → host , host → container) |
$ docker system df
$ docker system info
$ docker version
$ docker stats
[user@docker-host0 ~]$ docker container inspect -f "{{ .NetworkSettings.Networks.bridge.IPAddress }}" centos7-d3
172.17.0.4
[user@docker-host0 ~]$ docker container inspect -f "{{ .NetworkSettings.Networks.bridge.IPAddress }}" centos7-d
172.17.0.3
[user@docker-host0 ~]$ docker container inspect -f "{{ .NetworkSettings.Networks.bridge.IPAddress }}" centos7-4
172.17.0.2 → 컨테이너별로 아이피 다르게 할당됨
[user@docker-host0 ~]$ docker container inspect -f "{{ .State.Pid }}" centos7-d
6999
[user@docker-host0 ~]$ docker container inspect -f "{{ .Config.Hostname }}" centos7-d
fcc1303233c0
[user@docker-host0 ~]$ docker container cp centos7-d:/centos7-d2.data ~/
[user@docker-host0 ~]$ docker container cp ./host.data centos7-d:/host.data
[user@docker-host0 ~]$ docker container diff centos7-d → 도커 컨테이너의 파일변화 등을 출력(diff)
A /work
A /work/fileA
A /work/fileB
A /centos7-d2.data
A /host.data
C /run
A /run/mount
C /root
symbol | Description |
A | A file or directory was added |
D | A file or directory was deleted |
C | A file or directory was changed |
Docker container network
Bridge
컨테이너가 사용하는 Private Network
같은 네트워크에 속한 컨테이너 끼리 가능하고 외부 네트워크와 통신할 수 있도록 연결되어있음
Host network
Docker Host의 네트워크 정보르 공유하여 사용하는 방법
사용하고자 하는 포트가 호스트와 충돌되지 않아야 함
Null Netwok
컨테이너에 대한 네트워크를 사용하지 않음
Overlay Network
서로 다른 Docker Host에 연결해서 서로 통신할 수 있도록 하는 네트워크
macvlan network
컨테이너에 Mac Address할당 → docker Daemon이 트래픽을 컨테이너의 MAC Address로 라우팅할 수 있게 지원하는 네트워크
Overlay network
서로 다른 Docker Host에 연결해서 서로 통신할 수 있도록 하는 네트워크
macvlan network
MAC address를 컨테이너에 할당하여 docker Daemon이 트래픽을 컨테이너의 MAC 주소로 라우팅할 수 있도록 지원하는 네트워크
'docker' 카테고리의 다른 글
20210813 (목) dockerfile, 멀티 스테이지 빌드, 사설레지스트리 (0) | 2021.08.13 |
---|---|
20210812 (목) image build, Dockerfile (0) | 2021.08.12 |
20210811 (수) docker network, volume (0) | 2021.08.11 |
20210809 (월) container개념, docker 설치 (0) | 2021.08.09 |