- Docker Container 명령어
- 리소스 사용량 제한
docker run -dit -m 1g --rm --name linuxserver3 ubuntu:18.04
-m [메모리 양] - 메모리 사용량을 제한하여 container 생성, 단위:b, k, m, g 중 선택
docker run -dit --cpu-share 512 --rm linuxserver4 ubuntu:18.04
- --cpu-share [cpu 사용량] - cpu 사용 비율
- 파이썬 app을 container로 실행
파이썬 인터프리터 환경의 container 실행
docker cp lotto.py python-run:/
- host에 있는 lotto.py 파일을 python-run container의 / 디렉토리에 복사
docker exec -it python-run python /lotto.py
- lotto.py 프로그램 실행
- JavaScript 프로그램을 Node.js container를 이용하여 실행
docker exec -it node-run bash
- node-run container에 bash를 실행하여 동작 확인
docker exec -it node-run node app
- app.js 프로그램 실행
- 위 화면에서는 접속해서 실행했음
docker rm -f [container id/name]
- 동작중인 container도 강제 삭제
docker container pause [container id/name]
docker pause [container id/name]
- container 일시 중지
docker container unpause [container id/name]
docker pause [container id/name]
- container 일시 중지 해제
docker container inspect [container id/name]
- container 세부 정보 확인
- docker container inspect webserver | grep Pid
- inspect 결과에 대해 pipe 와 grep 을 활용해 검색 가능
- docker container inspect webserver --formet "{{.State.Pid}}"
- --format 옵션을 이용하여 원하는 내용 검색 -> pid 검색
- docker container inspect webserver --format "{{.NetworkSettings.IPAddress}}"
- --format 옵션을 이용하여 원하는 내용 검색 -> IP Address 검색
docker container logs [옵션] [container id/name]
- container log 정보 출력
-t - 시간 흐름에 따른 로그 정보
- Docker Image 생성
docker image는 container 를 생성하기 위한 목적으로 사용
docker hub를 통해 미리 작성된 docker image를 다운로드 하여 사용하는 것이 일반적이며 docker hub에서 제공하는 docker image는 기본이 되는 image 를 제공한다
사용자가 원하는 형태의 image를 별도로 생성할 수 있으며 필요하다면 registry 를 통해 배포할 수 있다.
- docker image 생성 방법
docker commit
- 현재 동작중인 container 를 이용하여 image 생성
- 명령이 성공하면 docker images 명령으로 image 확인
Dockerfile을 통해 직접 생성
- Dockerfile은 image 생성 내용을 기술한 텍스트 파일
- Dockerfile을 빌드하여 image 생성
- Dockerfile
참고 - https://docs.docker.com/engine/reference/builder/
docker image 생성, 즉 필요로 하는 개발 환경을 제공하기 위한 여러 명령 집합
Dockerfile, dockerfile 모두 가능하지만 통상 Dockerfile 을 많이 사용함, 별도의 형상/버전 관리 툴을 이용해 관리함
Dockerfile 명령어는 대소문자를 구분하지 않으나 가독성을 위해 대문자로 기술
- Dockerfile 주요 명령어
FROM
- 생성하려는 image의 base image 지정
- hub.docker.com 에서 제공하는 image 사용 권장
- 크기가 작은 base image 사용
- tag를 지정하지 않으면 latest 버전으로 지정됨
RUN
- 설정된 기본 이미지에 패키지 업데이트, 설치, 명령 실행 등을 작성
- 1개 이상 작성 가능
CMD
- 생성된 Docker image를 container 로 생성하여 실행할 때 실행되는 명령기술
- ENTRYPOINT 명령문으로 지정된 명령에 default로 넘길 파라미터를 지정할 때 사용
- 여러개의 CMD 명령을 사용해도 마지막 한개의 CMD만 처리
- 일반적으로 image의 container 실행 시 application daemon이 실행되도록 하는 경우 유용
ENTRYPOINT
- 생성된 Docker image를 container로 실행할 때 실행되는 명령
- container 실행 시 명령 및 인자 값을 전달하여 실행한다는 점이 CMD와 차이점
- 여러 CMD 를 사용하는 경우 ENTRYPOINT 명령과 함께 사용
COPY
- host에 있는 파일을 Docker image에 복사하는 명령
- 통상 Dockerfile과 같은 디렉토리에 있는 파일을 Docker image 에 복사할때 사용
EXPOSE
- container가 host 네트워크를 통해 들어오는 트래픽을 listening 하는 포트와 프로토콜 지정
WORKDIR
- container 상에서 작업할 경로 전환을 위해 사용
- WORKDIR을 지정하면 RUN, CMD, ENTRYPOINT, COPY 명령은 해당 디렉토리를 기준으로 실행됨
docker build [Dockerfile path] -t [userid] [docker image name]:[version]
- Dockerfile 을 이용하여 Docker image 생성 명령
-t : docker image에 tag 추가 허용 옵션
- [user id] - docker image르르 docker registry에 upload할때 해당 사용자 id repository에 upload 됨
docker build . -t calc-ubuntu:0.1
'Kubernetes > [구름] 쿠버네티스 전문가 양성 과정 k-digital' 카테고리의 다른 글
[10주-10.5] Docker Network, Compose (0) | 2022.10.21 |
---|---|
[10주-10.4] Docker Image 생성 (0) | 2022.10.05 |
[9주-9.29] docker container 명령어 (0) | 2022.09.29 |
[9주-9.28] Docker 환경 구성 (0) | 2022.09.29 |
[9주-9.27] Docker / 기반 기술 이해 (0) | 2022.09.29 |