공부하기싫어
article thumbnail

 

  • 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 됨

 

Dockerfile
image 생성

docker build . -t calc-ubuntu:0.1

create image
만들어진 image로 container 생성 후 실행
접속확인