1. Dockerfile 작성법

도커 이미지를 만들어 놓는다. (컨테이너 아님)

 

# Dockerfile

FROM [이미지명]

# 로컬과 연결시킬 포트 
EXPOSE 5000

# run the command
CMD ["/root/anaconda3/bin/python3", "./app.py"]

EXPOSE 부분은 도커포트와 로컬포트를 열어놓는 부분이다.

CMD 부분은 도커를 실행할 시에 자동으로 실행할 명령어를 설정하는 부분이다.

 

2. 도커 빌드하기

도커파일 경로에서 프롬프트 창을 실행 시킨 후 아래 커맨드를 통해 빌드한다. ( . 주의)

docker build -t [새롭게 만들 이미지명] .

 

 

3. Dockerfile 옵션

FROM : Docker Base Image (기반이 되는 이미지, <이미지 이름>:<태그> 형식으로 설정)
MAINTAINER : 메인테이너 정보 (작성자 정보)
RUN : Shell Script 또는 명령을 실행
CMD : 컨테이너가 실행되었을 때 명령이 실행
LABEL : 라벨 작성 (docker inspect 명령으로 label 확인할 수 있습니다.)
EXPOSE : 호스트와 연결할 포트 번호를 설정한다.
ENV : 환경변수 설정
ADD : 파일 / 디렉터리 추가
COPY : 파일 복사
ENTRYPOINT : 컨테이너가 시작되었을 때 스크립트 실행
VOLUME : 볼륨 마운트
USER : 명령 실행할 사용자 권한 지정
WORKDIR : "RUN", "CMD", "ENTRYPOINT" 명령이 실행될 작업 디렉터리
ARG : Dockerfile 내부 변수
ONBUILD : 다른 이미지의 Base Image로 쓰이는 경우 실행될 명령 수행
SHELL : Default Shell 지정

RUN 예시 ) RUN pip install xxxx

 

'가상화 > Docker' 카테고리의 다른 글

[Docker] 도커 세팅  (0) 2022.07.28
[Docker] 명령어 정리  (0) 2022.02.18

리눅스 도커 설치 방법

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
  
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io \


sudo chmod -R 777 /usr/local/bin

sudo curl -sL https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

 

'가상화 > Docker' 카테고리의 다른 글

[Docker] Dockerfile 작성법 + 도커 빌드하기  (0) 2022.08.31
[Docker] 명령어 정리  (0) 2022.02.18

# 쿠버네티스 세팅 설정

1. ssh key 생성 후 모든 노드에 배포

2. kubespray 설치

(... 진행중)

3. 클러스터 ini 파일 적용

 

# 사용할만한 기능

컨피그맵 : DB를 서비스별로 적용

로드밸런서

무중단 배포 테스트

시크릿 : 파드 환경변수 세팅

테인트 : 톨러레이션을 세팅하여 특정 노드에만 파드를 스케줄링함.  EX) GPU서버에만 파드 스케줄링

퍼시스턴트 볼륨(PV) : 데이터를 저장하는 볼륨. 컨테이너를 껐다켜도 데이터 유지.PVC로 컨트롤. 볼륨개수 지정가능

헬름 : 쿠버네티스 템플릿 관리 툴

 

 

# 쿠버네티스 bash 자동완성 기능 추가

echo 'source <(kubectl completion bash)' >>~/.bashrc

 

# 파드 (pod) 상태 보기

kubectl get pods

 

#  Deployment nginx 세팅

kubectl create deployment nginx-app --image nginx --port=80

# Deployment pod 늘리기

kubectl scale deploy nginx-app --replicas=2

# 설치 확인

kubectl version

# 시스템 파드 확인

kubectl get pods -n kube-system

 

#ssh 키 생성 (.ssh/ 경로에 id_rsa, id_rsa.pub 파일 생성됨)

ssh-keygen -t rsa

 

# kubespray 설치

git clone https://github.com/kubernetes-sigs/kubespray.git

 

# 2.16.0버전 체크아웃

git checkout -b v2.16.0

# 파드 삭제 

kubectl delete pod [파드이름]

# 파드 컨테이너 접속

kubectl exec -it [컨테이너명] -- sh

# yaml 파일 적용방법

kubectl apply -f 파일명.yaml

# 레플리카셋, 파드 확인

kubectl get replicaset,pods

# 디플로이먼트,레플리카셋, 레플리카 컨트롤러, 파드 확인

kubectl get deploy,rs,rc,pods

# 파드는 남기고 레플리카세트만 삭제

kubectl delete replicaset [레플리카셋 이름] --cascade=orphan

# 디플로이먼트 파드 개수 조절

kubectl scale deploy [디플로이먼트명] --replicas=[개수]

# 디플로이먼트 배포 정지

kubectl rollout pause [디플로이먼트명]

# 디플로이먼트 배포 재개

kubectl rollout resume [디플로이먼트명]

# 디플로이먼트 재시작

kubectl rollout restart [디플로이먼트명]

# 디플로이먼트 상태확인

kubectl rollout status

# 잡 상태 확인. 잡 이름은 name으로 지정된것. 파일명말고

kubectl describe job [잡이름]

# 잡 로그 확인 - 파드에 로그가 있음

kubectl logs 파드이름

# 쿠버네티스 서비스 상태(포트) 확인

kubectl get svc

'가상화 > Kubernetes' 카테고리의 다른 글

[쿠버네티스] 쿠버네티스 키워드  (0) 2022.05.25

파드 : 컨테이너 관리의 기본 단위

헬름 : 쿠버네티스 템플릿 패키지 

서비스 : 파드 접근에 필요

'가상화 > Kubernetes' 카테고리의 다른 글

[쿠버네티스] 쿠버네티스 학습  (0) 2022.05.30

자주 이용하는 명령어는 Bold체로 표시

docker images  # 저장된 도커 이미지 확인
docker run ubuntu:18.04 # 도커이미지 생성 (ubuntu:18.04로)
docker rmi -f id  # 삭제
docker run -it [Image Name] # 도커 컨테이너 실행
docker build -t frontend-img .  
docker save -o [FILE_NAME.tar] [IMAGE NAME] # 도커 이미지를 tar로 저장
docker ps -a # 도커 컨테이너 전체 보기
docker attach [containers_id] # 컨테이너에 접근
exit  # 컨테이너 나가기
docker load -i [tar] # 도커 이미지 tar파일 로드
docker commit CONTAINER_ID IMG_NAME # 컨테이너를 새로운 도커 이미지로 저장
ctrl d # 컨테이너 종료
ctrl + p 누르고 ctrl+q  # 컨테이너 실행상태에서 나오기
docker cp [로컬경로] 컨테이너아이디:[컨테이너 경로] # 로컬->도커 컨테이너로 파일 복사

# 도커 시간 세팅 (도커로 서버를 세팅하면 한국 시간이 아니기 때문에 따로 설정해줘야함)
$ sudo apt-get install tzdata
$ dpkg-reconfigure tzdata

 

# 도커 안쓰는 이미지, 컨테이너 삭제 ( 주의! )

docker system prune -a -f

 

# 도커 공유폴더 마운트

docker run -it -v [로컬경로]:[컨테이너경로] 도커이미지명

ex)

docker run -it -v C:\:/home/workspace ubuntu:18.04

 

# 도커 컨테이너 삭제

docker rm -f [컨테이너 아이디 or 컨테이너 닉네임]

 

# 도커 컨테이너 이름으로 관리 + 백그라운드 실행

docker run -it -d --name alibi alibi3

 

#  컨테이너는 스톱 후 삭제해야함

docker stop alibi

docker rm alibi

 

# 포트 연결 옵션

-p 5000:5000

 

# 이미지 설치

docker pull mysql

docker pull httpd    #아파치

'가상화 > Docker' 카테고리의 다른 글

[Docker] Dockerfile 작성법 + 도커 빌드하기  (0) 2022.08.31
[Docker] 도커 세팅  (0) 2022.07.28

+ Recent posts