English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
docker 클라이언트는 매우 간단하며, docker 명령어를 직접 입력하여 Docker 클라이언트의 모든 명령어 옵션을 확인할 수 있습니다.
w3codebox@w3codebox:~# docker
명령어를 사용하여 docker command --help 지정된 Docker 명령어의 사용 방법에 대한 더 깊은 이해를 얻을 수 있습니다.
예를 들어, 다음과 같이 docker stats 명령어의 구체적인 사용 방법:
w3codebox@w3codebox:~# docker stats --help
우리가 ubuntu 이미지가 없다면, docker pull 명령어를 사용하여 ubuntu 이미지를 로드할 수 있습니다:
$ docker pull ubuntu
다음 명령어는 ubuntu 이미지를 사용하여 컨테이너를 시작하며, 명령행 모드로 컨테이너에 접속하는 파라미터를 설정합니다:
$ docker run -it ubuntu /bin/bash
파라미터 설명:
-i: 상호작용式 작업.
-t: 터미널.
ubuntu: ubuntu 이미지.
/bin/bash명령어는 이미지 이름 뒤에 위치하며, 여기서는 상호작용式 셸을 원하므로 /bin/bash.
터미널을 나가려면 exit:
root@ed09e4490c57:/# exit
모든 컨테이너를 확인하는 명령어는 다음과 같습니다:
$ docker ps -a
이미지를 클릭하여 큰 이미지를 볼 수 있습니다:
docker start 명령어로 중지된 컨테이너를 시작할 수 있습니다:
$ docker start b750bbbcfd88
대부분의 상황에서 docker의 서비스가 배경에서 실행되기를 원합니다. 따라서 -d는 컨테이너의 실행 모드를 지정합니다.
$ docker run -itd --이름 ubuntu-test ubuntu /bin/bash
이미지를 클릭하여 큰 이미지를 볼 수 있습니다:
주의사항:추가된 -d 파라미터는 기본적으로 컨테이너에 들어가지 않습니다. 컨테이너에 들어가려면 명령어를 사용해야 합니다 docker exec아래에서 설명할 것입니다).
컨테이너를 중지하는 명령어는 다음과 같습니다:
$ docker stop <컨테이너 ID>
중지된 컨테이너는 docker restart 명령어로 다시 시작할 수 있습니다:
$ docker restart <컨테이너 ID>
사용할 때 -d 파라미터를 설정하면 컨테이너가 배경으로 실행됩니다. 이때 컨테이너에 접속하려면 다음 명령어를 사용할 수 있습니다:
docker attach
docker exec추천해 주세요 docker exec 명령어를 사용하십시오. 이 명령어는 컨테이너가 중지되지 않도록 컨테이너 터미널을 종료합니다.
attach 명령어
아래는 docker attach 명령어를 사용하는 예제입니다.
$ docker attach 1e560fca3906
주의: 이 컨테이너에서 나가면 컨테이너가 중지됩니다.
exec 명령어
아래는 docker exec 명령어를 사용하는 예제입니다.
docker exec -it 243c32535da7 /bin/bash
주의: 이 컨테이너에서 나가면 컨테이너가 중지되지 않습니다. 이는 docker exec을 추천하는 이유입니다. docker exec 의 이유로.
더 많은 파라미터 설명은 docker exec을 사용하세요. --help 명령어를 확인하세요.
컨테이너 내보내기
로컬 컨테이너를 내보내려면 사용할 수 있습니다. docker export 명령어.
$ docker export 1e560fca3906 > ubuntu.tar
컨테이너 내보내기 1e560fca3906 로컬 파일로 스냅샷 ubuntu.tar。
이렇게 하면 컨테이너 스냅샷을 로컬 파일로 내보낼 수 있습니다.
컨테이너 스냅샷 가져오기
docker import를 사용하여 컨테이너 스냅샷 파일을 다시 이미지로 가져올 수 있습니다. 아래 예제에서는 스냅샷 파일 ubuntu.tar을 이미지 test에 가져옵니다./ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
또한, URL이나 특정 디렉토리를 지정하여 가져올 수도 있습니다. 예를 들어:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
컨테이너 삭제 사용 docker rm 명령어:
$ docker rm -f 1e560fca3906
아래 명령어는 종료 상태의 모든 컨테이너를 정리할 수 있습니다.
$ docker container prune
이전에 실행한 컨테이너는 특별한 용도가 없습니다.
그래서 docker를 사용하여 웹 애플리케이션을 구축해 보겠습니다.
우리는 docker 컨테이너에서 Python Flask 애플리케이션을 실행하여 웹 애플리케이션을 실행합니다.
w3codebox@w3codebox:~# docker pull training/webapp # 이미지 로드 w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
파라미터 설명:
-d:컨테이너가 배경에서 실행됩니다.
-P:컨테이너 내에서 사용하는 네트워크 포트를 우리가 사용하는主机에 랜덤으로 매핑합니다.
docker ps를 사용하여 실행 중인 컨테이너를 확인하세요:
w3codebox@w3codebox:~# docker ps docker ps를 사용하여 실행 중인 컨테이너를 확인하세요: d3d5e39ed9d3 training/CONTAINER ID IMAGE COMMAND ... PORTS32769->5000/tcp
webapp "python app.py" ... 0.0.0.0:
여기서 포트 정보가 추가되었습니다. 0.0.0.0:32769->5000/tcp
PORTS 5Docker는 포트를 열었습니다: 32769 000 포트(기본 Python Flask 포트)가 호스트 포트로 매핑되었습니다.
에서.
이제 웹 애플리케이션에 접근할 수 있습니다. -p 매개변수를 사용하여 다른 포트를 설정할 수 있습니다:
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker ps실행 중인 컨테이너 확인
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
컨테이너 내부의 5000 포트가 우리의 로컬 호스트에 매핑되었습니다. 5000 포트에 있습니다.
을 통해 docker ps 명령어를 사용하여 컨테이너의 포트 매핑을 확인할 수 있습니다.docker 또 다른 단축 방법을 제공합니다. docker port를 사용하여 docker port 지정된 (ID 또는 이름) 컨테이너의 특정 포트가 호스트 머신의 포트로 매핑되는 것을 확인할 수 있습니다.
위에서 생성한 웹 애플리케이션 컨테이너 ID는 bf08b7f2cd89 이름은 wizardly_chandrasekhar.
docker port bf0을 사용할 수 있습니다.8b7f2cd89 또는 docker port wizardly_chandrasekhar를 사용하여 컨테이너 포트 매핑 상태를 확인할 수 있습니다.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID 또는 이름]를 사용하여 컨테이너 내부의 표준 출력을 확인할 수 있습니다.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * 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: 허용합니다: docker logs 사용하면 tail -f 같이 내부 컨테이너의 표준 출력을 출력합니다.
위에서 볼 수 있듯이, 애플리케이션에서 사용하는 것은 5000 端口并且能够查看到应用程序的访问日志。
WEB 애플리케이션 컨테이너의 프로세스를 확인하다
w3codebox@w3docker top을 사용하여 컨테이너 내부에서 실행되는 프로세스를 확인할 수 있습니다. codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... TIME CMD 23245 23228 root
WEB 애플리케이션을 확인하다 docker inspect Docker의 기본 정보를 확인하려면 사용하세요. 이는 Docker 컨테이너의 구성과 상태 정보를 기록한 JSON 파일을 반환합니다.
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "Id": "bf0"8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85", "Created": ""2018-09-17T01:41:26.174228707Z", "Path": "python", "Args": [ "app.py" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 23245, "ExitCode": 0, "Error": "", "StartedAt": ""2018-09-17T01:41:26.494185806Z", "FinishedAt": "0001-01-01T00:00:00Z" } ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
중지된 컨테이너는 docker start 명령어를 사용하여 시작할 수 있습니다.
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l 최근 생성된 컨테이너를 조회하다:
# docker ps -l CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
실행 중인 컨테이너는 docker restart 명령어를 사용하여 다시 시작할 수 있습니다.
불필요한 컨테이너를 제거하기 위해 docker rm 명령어를 사용할 수 있습니다.
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
컨테이너를 제거할 때, 컨테이너가 중지 상태여야 합니다. 그렇지 않으면 다음과 같은 오류가 발생합니다.
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar 데몬으로부터의 오류 응답: 실행 중인 컨테이너 bf0를 제거할 수 없습니다.8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85컨테이너를 제거하려고 시도하기 전에 컨테이너를 중지하세요. 강제 제거할 수 있습니다.