명령어
리눅스 명령어
k8s 명령어
아래 명령어에 pod 대신 deployment, namespace 등의 오브젝트를 사용해도 된다.
kubectl apply -f [yaml 파일] : deployment.yaml과 같은 파일로부터 새로운 파드 생성
kubectl get pods : 파드 목록 확인
- -o wide : 파드가 실행중인 워커노드 확인
- --show-labels : 라벨을 함께 출력
- -n [네임스페이스 이름] : 특정 네임스페이스에 존재하는 파드 목록 확인. 기본적으로 default 사용.
kubectl describe pods [파드 이름] : 해당 오브젝트의 상세 정보 확인
kubectl exec : 파드의 컨테이너에 명령어 전달
- ex) kubectl exec -it pod-name bash : 컨테이너 접속 후 배시 셸 실행 및 유지
kubectl logs pods : 파드의 로그 확인
kubectl delete pod [파드 이름] : 특정 파드 삭제
- kubectl delete -f [my-pod.yaml]를 사용해도 된다.
- -all : 모든 파드 삭제
kubectl create namespace [생성할 ns 이름] : 네임스페이스 생성
kubectl create secret generic [생성할 secret 이름] --from-literal key1=value1 : key1=value1을 데이터로 가지는 시크릿 생성
기타 옵션
-c [컨테이너 이름] : exec, logs 등과 같이 사용하며, 파드의 어떤 컨테이너에 대해 명령어를 수행할지 명시
도커 명령어
이미지 관리
docker images : 도커 엔진에 존재하는 이미지의 목록 출력
docker pull [이미지 이름] : 원격 저장소(레지스트리)에 있는 이미지 다운
docker push [이미지 이름] : 원격 저장소에 로컬 이미지 업로드
docker build -t [생성할 이미지 이름]:[태그] [도커파일 경로] : Dockerfile을 바탕으로 이미지를 생성
- ex) docker build --platform linux/amd64 -t doforme524/withus ./
- -t : 생성할 이미지 이름 설정
docker rmi [이미지 이름]:[태그] : 이미지 삭제
docker search [이미지 이름] : 원격 저장소에서 이미지 검색. 별도의 레지스트리 명시 없으면 도커허브로 설정됨.
컨테이너 관리
docker run [이미지]:[태그] : 이미지로 컨테이너를 생성 및 실행. -it 옵션과 함께 사용하면 컨테이너 내부로 바로 접속된다.
- ex) docker run -it -p 8080:80 --name myContainer image:2.7
- -i : 상호 입출력
- -t : tty를 활성화해서 배시셸을 사용하도록 설정
- -p [호스트의 포트]:[컨테이너의 포트] : 외부에서 컨테이너에 접근할 수 있도록, 호스트와 컨테이너 간에 포트를 바인딩. ip도 지정할 수 있다.
- -d : 입출력이 없는 상태로 컨테이너 실행. 포그라운드 프로그램이 실행되지 않으면 컨테이너는 종료됨.
- -e : 컨테이너 내부의 환경변수 설정.
- -v [볼륨의 이름]:[컨테이너의 공유 디렉토리] : 볼륨 마운트
- —name [부여할 컨테이너 이름] : 컨테이너 이름 지정
- —link : 재시작시 매번 변경되는 컨테이너의 ip를 알 필요 없이, 항상 컨테이너 별명으로 접근하도록 설정한다.
docker start [컨테이너 이름 / 컨테이너 id] : 생성되어 있는 컨테이너 실행
docker stop [컨테이너 이름 / 컨테이너 id] : 실행중인 컨테이너 중단
docker rm [컨테이너 이름 / 컨테이너 id] : 중단된 컨테이너 삭제
- -f : 실행 중인 컨테이너도 삭제
docker prune : 모든 컨테이너 삭제
docker exec : 컨테이너 내부에서 실행한 명령어의 결과 반환
- docker exec -it [container] /bin/bash 의 형태로 사용하면, 컨테이너 내부의 셸을 사용할 수 있다.
docker logs [컨테이너 이름 / 컨테이너 id] : 컨테이너 내부의 출력을 보여준다.
docker ps : 정지되지 않은 컨테이너만 출력
- -a : 정지된 컨테이너를 포함한 모든 컨테이너 출력
볼륨
docker volume create [볼륨 이름] : 볼륨 생성
docker volume ls : 볼륨 나열
docker volume inspect [볼륨 이름] : 볼륨 상세 정보 확인
docker volume rm [볼륨 이름] : 볼륨 삭제
상세 정보 확인
docker inspect [컨테이너, 이미지, 네트워크, 볼륨 등] : 상세 정보 확인
- --type [container, image, volume 등] : 이름 중복 시 컨테이너가 가장 먼저 수행되므로, 타입 명시