Commands and Arguments in Docker
•
docker 컨테이너 실행
$ docker run ubuntu
Plain Text
복사
•
실행중인 컨테이너 리스트 출력
$ docker ps
Plain Text
복사
•
중단된 컨테이너를 포함한 모든 컨테이너 리스트 출력
$ docker ps -a
Plain Text
복사
•
컨테이너는 웹 서버, 애플리케이션 서버 또는 데이터베이스 서버 등의 인스턴스를 호스팅하는 것과 같은 특정 작업 또는 프로세스를 실행하기위한 것입니다.
컨테이너를 시작하는 다른 명령
•
한 가지 옵션은 docker run 명령에 명령을 추가하는 것입니다. 그러면 이미지에 지정된 기본 명령이 재정의됩니다.
$ docker run ubuntu sleep 5
Plain Text
복사
•
이렇게하면 컨테이너가 시작될 때 수면 프로그램을 실행하고 5 초 동안 기다린 다음 존재합니다.
•
명령을 단순히 쉘 형식으로 또는 JSON 배열 형식으로 지정하는 여러 가지 방법이 있습니다.
•
$ docker build -t ubuntu-sleeper
$ docker run ubuntu-sleeper
Plain Text
복사
Entrypoint Instruction
•
EntryPoint는 컨테이너가 시작될 때 실행될 프로그램 명령어와 명령 옵션을 지정하는 Commmand와 유사하다.
command: ["sleep2.0"]
args: ["10"]
> docker run ubuntu-sleeper sleep 10
Plain Text
복사
•
기존 위와 같던 command, arg에서 엔트리포인트를 사용하면 아래처럼 arg만 지정하여 사용할 수 있다.
entrypoint: ["sleep"]
> docker run ubuntu-sleeper 10
Plain Text
복사
K8s Reference Docs
Commands and Arguments in Kubernetes
•
docker run 명령에 추가되는 모든 항목은 배열 형식으로 포드 정의 파일의 args 속성으로 이동합니다.
•
POD를 생성할 때, POD 안에서 동작하는 컨테이너를 위한 command와 args를 정의할 수 있다.
•
docker file의 Entrypoint에 해당하는 것은 command 필드이고, CMD에 해당하는 것은 args 이다.
•
정의한 command와 args는 POD가 생성되고 난 이후에는 변경될 수 없다
•
매니페스트 파일 안에서 정의하는 command와 args는 컨테이너 도커 이미지가 제공하는 기본 커맨드와 인자들보다 우선시 된다.
•
만약 args를 정의하고 command를 정의하지 않는다면, 도커 파일의 기본 CMD가 pod definition의 args와 함께 사용된다.
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-sleeper-pod
spec:
containers:
- name: ubuntu-sleeper
image: ubuntu-sleeper
command: ["sleep2.0"]
args: ["10"]
Plain Text
복사