도커 컨테이너 사용법
Docker 클라이언트
docker 클라이언트는 매우 간단합니다. docker 명령을 직접 입력하면 Docker 클라이언트의 모든 명령 옵션을 볼 수 있습니다.
php@php:~# docker
docker command --help 명령을 사용하면 지정된 Docker 명령을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.
예를 들어 docker stats 명령의 구체적인 사용법을 확인하고 싶습니다.
php@php:~# docker stats --help
웹 애플리케이션 실행
앞서 실행한 컨테이너는 특별한 용도가 없습니다.
다음으로 docker를 사용하여 웹 애플리케이션을 구축해 보겠습니다.
웹 애플리케이션을 실행하기 위해 Docker 컨테이너에서 Python Flask 애플리케이션을 실행해 보겠습니다.
php@php:~# docker run -d -P training/webapp python app.py
매개변수 설명:
-d:컨테이너가 백그라운드에서 실행되도록 합니다.
-P:컨테이너 내부에 사용되는 네트워크 포트를 우리가 사용하는 호스트에 매핑하세요.
웹 애플리케이션 컨테이너 보기
실행 중인 컨테이너를 보려면 docker ps를 사용하세요.
php@php:~$ docker ps
여기에 더 많은 포트 정보가 있습니다.
PORTS 0.0.0.0:32769->5000/tcp
Docker는 호스트 포트 32769에 매핑된 포트 5000(기본 Python Flask 포트)을 엽니다.
이때 브라우저를 통해 WEB 애플리케이션에 액세스할 수 있습니다
-p 플래그를 지정하여 지정된 포트를 바인딩할 수도 있습니다.
php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker ps실행 중인 컨테이너 보기
컨테이너 내부의 5000 포트는 로컬 호스트의 5000 포트에 매핑됩니다.
네트워크 포트 바로가기
docker ps 명령을 통해 컨테이너의 포트 매핑을 볼 수 있습니다. Docker는 또 다른 바로가기인 docker port를 사용하여 지정된(ID 또는 이름) 컨테이너의 특정 결정을 확인합니다. . 포트는 호스트의 포트 번호에 매핑됩니다.
위에서 생성한 웹 애플리케이션 컨테이너 ID는 7a38a1ad55c6이고 이름은determined_swanson
Docker 포트 7a38a1ad55c6 또는 docker 포트determined_swanson을 사용하여 컨테이너 포트의 매핑을 볼 수 있습니다
php@php:~$ docker port 7a38a1ad55c6 5000/tcp -> 0.0.0.0:5000
php@php:~$ docker port determined_swanson 5000/tcp -> 0.0.0.0:5000
웹 애플리케이션 로그 보기
docker 로그 [ ID 또는 이름]은 컨테이너 내부의 표준 출력을 볼 수 있습니다.
php@php:~$ docker logs -f 7a38a1ad55c6 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f: dokcer 로그는 tail -f를 사용하는 것처럼 컨테이너 내부에 표준 출력을 출력합니다.
위에서 애플리케이션이 포트 5000을 사용하고 있음을 확인할 수 있으며 애플리케이션의 액세스 로그를 볼 수 있습니다.
웹 애플리케이션 컨테이너의 프로세스 보기
docker top을 사용하여 컨테이너 내부에서 실행 중인 프로세스를 볼 수도 있습니다.
php@php:~$ docker top determined_swanson
웹 애플리케이션 확인
docker 검사를 사용하여 Docker의 기본 정보 보기 . Docker 컨테이너의 구성 및 상태 정보를 기록하는 JSON 파일을 반환합니다.
php@php:~$ docker inspect determined_swanson [ { "Id": "7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361", "Created": "2016-05-09T16:20:45.427996598Z", "Path": "python", "Args": [ "app.py" ], "State": { "Status": "running", ......
웹 애플리케이션 컨테이너 중지
php@php:~$ docker stop determined_swanson determined_swanson
웹 애플리케이션 컨테이너 다시 시작
docker start 명령을 사용하여 중지된 컨테이너를 시작할 수 있습니다.
php@php:~$ docker start determined_swanson determined_swanson
docker ps -l 실행 중인 컨테이너 보기
실행 중인 컨테이너, docker restart 명령을 사용하여 다시 시작할 수 있음
웹 애플리케이션 컨테이너 제거
docker rm 명령을 사용하여 삭제할 수 있음 필수 컨테이너
php@php:~$ docker rm determined_swanson determined_swanson
컨테이너를 삭제할 때는 컨테이너가 정지된 상태여야 하며 그렇지 않으면 다음 오류가 보고됩니다
php@php:~$ docker rm determined_swanson Error response from daemon: You cannot remove a running container 7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361. Stop the container before attempting removal or use -f