■ Key words
ㆍDocker
ㆍDocker Hub
ㆍDocker Registry(strorage)
ㆍDocker Image(static; programe)
ㆍDocker Container(running; process)
ㆍDocker Compose
■ 주요내용
ㆍDocker : 프로그램 실행을 위해 Linux 환경을 쉽게 구성해주는 도구.
App 실행환경을 코드로 작성하고, OS를 격리화하여 관리하는 기술.
* 개발자와 사용자, 그리고 관리자가 같은 환경에서 프로그램을 사용할 수 있도록 도와줌.
- 환경표준화
- 수작업으로 환경 구성 일치화
- 리소스 격리성 : 가상머신(Virtual Machine) / Docker
ㆍLinux Container : 필요한 library와 App.을 모아 별도의 서버처럼 구성한 것.
각 컨테이너가 네트워크 설정, 환경 변수 등 시스템 자원을 독립적으로 소유.
- 프로세스의 구획화 : 특정 컨테이너에 작동하는 프로세스는 그 컨테이너 안에서만 접근 가능 /
컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에 영향 불가
- 네트워크의 구획화 : 컨테이너별 IP주소 할당
- 파일시스템의 구획화 : 파일시스템이 컨테이너 내부에서 구획화 되어있어 명령이나 파일 등의 접근 제한 가능
ㆍDocker CLI - Image 사용방법
* Docker 주소 구성 : Registry_Account/Repository_Name:Tage
- Docker Registry : image가 관리되는 곳 / 일반적으로 Docker Hub를 기본 registry로 설정 /
Docker Hub / Private Docker Hub / 회사 내부용 Registry 등으로 구분 가능
- Docker Repository : Docker Image가 저장되는 공간
- Docker Tage : 일반적으로 Docker Image의 버전 정보 입력 / default는 latest
- Docker Imgage : programe과 같이 저장되어 정적인 상태
- Docker Container : image-instance가 활성화된 app. process(service / web)
ㆍDocker CLI - Copy, Image 생성
- CP(Copy) : 호스트와 컨테이너 사이에 파일을 복사(copy)
- Volumn : 호스트와 컨테이너 사이에 공간을 마운트(Mount)
* Mount : 저장공간을 다른 장치에서 접근할 수 있도록 허용하여
하나의 저장공간을 이용하는 것처럼 보이게 하는 작업
■ Session note
ㆍ
■ 주요함수
ㆍDocker 실습
# registry에서 image/repository 가져오기
docker image pull docker/whalesay:latest
# Docker image list 출력 / 용량 확인
docker image ls
# 이미지를 컨테이너로 실행하기
docker container run --name myName docker/whalesay:latest cowsay boo
# run : 실행명령어
# --name : 옵션; 이름 지정
# cowsay : command; 컨테이너에서 호출할 것 지정
# boo : ARG.; command인 cowsay에 넘겨질 파라미터. 해당 단어를 고래가 말하게 됨
# 컨테이너 list 출력
docker container ps -a
# -a : 종료된 컨테이너를 모두 포함하여 출력 / default는 실행 중인 컨테이너만 출력
# myName이라는 컨테이너 삭제 / 컨테이너 명시할 때는 ps명령을 통해 확인 가능한 NAMES 혹은 CONTAINER ID 사용
docker container rm myName
# docker 이미지 삭제
docker image rm docker/whalesay
docker rmi
# docker 컨테이너 이름 명명 / 실행 / 실행 종료 후 삭제
docker container run --name my_name --rm docker/whalesay cowsay boo
# image가 없을 경우 자동적으로 이미지를 받아온 후(pull) 실행
# docker image 다운 / 컨테이너 실행 / 컨테이너 지우기
docker container run -it --rm danielkraic/asciiquarium:latest
# -it : 사용자와 컨테이너 간 인터랙션이 필요할 시 터미널 입력을 위한 옵션(-i, -t 동시 사용)
# ctrl + c로 종료 가능
# jupiter notebook 환경 구축
docker container run --name myjupyter --rm -p 10000:8888 jupyter/minimal-notebook
■ Reference
ㆍCLI : https://youtu.be/hNdAQQeqkYU
ㆍLinux 기본명령어 : https://youtu.be/Xcctef41-pE
ㆍIP와 DNS, port : https://deftkang.tistory.com/119
[Network] 웹 브라우저와 웹 서버의 통신과정, IP와 DNS, 포트(port) 쉽게 이해하기
웹 브라우저와 웹 서버 deftkang.tistory.com 같은 URL을 입력하면 왜 해당 화면이 뜰까 그 이유는 복잡한 과정을 거친다. 이 과정을 단순화 하면 아래 그림과 같이 정리할 수 있다. ※ URL을 잘 모르시다
deftkang.tistory.com
ㆍ서버 : https://youtu.be/R0YJ-r-qLNE
ㆍDocker : https://docs.docker.com/engine/reference/builder/
Dockerfile reference
docs.docker.com
ㆍPostgreSQL in Docker : https://hub.docker.com/_/postgres
Postgres - Official Image | Docker Hub
Get more out of Docker with a free Docker ID Sign up for a Docker ID to gain access to all the free features Docker has to offer, including unlimited public repositories, increased container image requests, automated builds, and much more. Sign Up ✕
hub.docker.com
ㆍData Volumn : https://ko.wikipedia.org/wiki/%EB%B3%BC%EB%A5%A8_(%EC%BB%B4%ED%93%A8%ED%8C%85)
볼륨 (컴퓨팅) - 위키백과, 우리 모두의 백과사전
컴퓨터 운영 체제 환경에서, 볼륨(volume) 또는 논리 드라이브(logical drive)는 하나의 파일 시스템을 갖춘 하나의 접근 가능한 스토리지 영역으로, 일반적으로(꼭 필수는 아니지만) 하드 디스크의 단
ko.wikipedia.org
ㆍDocker와 Data Volumn : https://www.joinc.co.kr/w/man/12/docker/Guide/DataWithContainer
도커 컨테이너 데이터 볼륨 관리
백업, 복구, 마이그레이션
www.joinc.co.kr
'Data Science > 3. 데이터 엔지니어링' 카테고리의 다른 글
[n322]python 활용(2) (0) | 2021.07.17 |
---|---|
[n321]Python 활용(1) (0) | 2021.07.17 |
[n314]SQL(Structured Query Language)(2/2) (0) | 2021.07.13 |
[n313]SQL(Structured Query Language)(1/2) (0) | 2021.07.12 |
[n311]개발환경 (0) | 2021.07.09 |