>  기사  >  운영 및 유지보수  >  Docker 학습 컨테이너 사용법을 완전히 익히세요.

Docker 학습 컨테이너 사용법을 완전히 익히세요.

WBOY
WBOY앞으로
2022-01-17 18:46:342241검색

이 기사는 Docker에서 컨테이너를 사용하는 방법에 대해 설명합니다.

Docker 학습 컨테이너 사용법을 완전히 익히세요.

컨테이너 실행

기존 이미지를 찾고 싶다면 GitHub 프로젝트에서 오픈소스를 찾는 것처럼 공개 Docker Hub에서 검색하면 소개와 사용법을 확인할 수 있습니다. 동일합니다.

Docker 학습 컨테이너 사용법을 완전히 익히세요.

Docker Hub를 처음 사용하는 경우 먼저 계정을 등록하고 상단 검색창에 ubuntu를 입력하면 첫 번째 검색된 결과가 공식 ubuntu 이미지입니다. .

이 페이지에는 이미지의 기본 정보와 사용법 소개가 있습니다. 오른쪽의 docker pull ubuntu 명령은 이미지를 로컬로 가져오는 데 사용됩니다. 이전 기사에서 언급했듯이 컨테이너를 인스턴스화할 때 Docker가 지정된 이미지를 로컬에서 찾을 수 없으면 자동으로 가져옵니다. 따라서 로컬에서 직접 실행할 수 있습니다.

docker run -i -t ubuntu /bin/bash

이 명령은 이전 명령보다 빠릅니다. 지난번에는 아래에 설명된 몇 가지 추가 매개변수가 있습니다.

  • -i는 컨테이너에서 STDIN이 켜져 있는지 확인할 수 있습니다.

  • -t는 컨테이너에 의사 TTY 터미널을 할당합니다.

  • ubuntu는 이전 예의 hello-world

  • /bin/bash에 해당하는 이미지 이름은 시작 후 컨테이너에서 실행되는 명령입니다

두 매개변수 -i와 -t는 컨테이너를 실행한 후 상호작용을 할 수 있습니다. 컨테이너가 생성되면 Docker는 컨테이너에서 /bin/bash 명령을 실행합니다. 따라서 컨테이너가 실행된 후 터미널이 컨테이너에 연결됩니다.

Docker 학습 컨테이너 사용법을 완전히 익히세요.

이때 터미널을 열 수 있습니다. docker ps 명령을 입력하여 시작된 컨테이너를 보면 결과는 다음과 같습니다.

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS       PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Up 4 hours             reverent_wu

여기에는 컨테이너의 ID, 이미지, 마지막으로 실행된 명령, 생성 시간, 상태 및 이름이 표시됩니다. 여기서 reverent_wu라는 이름은 Docker에 의해 자동으로 생성됩니다. 컨테이너를 생성할 때 이름을 지정해야 하는 경우 --name을 사용하여 컨테이너 이름을 지정할 수 있습니다.

컨테이너 내부 깊숙한 곳

현재 상태에서는 컨테이너에 연결된 터미널에서 우분투 시스템이 지원하는 모든 명령을 실행할 수 있습니다. 예를 들어, 호스트 이름 명령을 입력하고 컨테이너의 호스트 이름이 해당 컨테이너 ID인지 확인합니다.

다음으로 /etc/hosts 파일을 살펴볼 수 있습니다.

root@402c5d3468d7:/# cat /etc/hosts
127.0.0.1        localhost
::1        localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters
172.17.0.2        402c5d3468d7

컨테이너의 프로세스를 직접 보거나 apt-get을 사용하여 패키지를 설치할 수도 있습니다.

마지막으로 종료 명령을 입력하여 컨테이너를 시작하고 호스트의 명령 프롬프트로 돌아갈 수 있습니다. 이때 docker ps를 실행하면 방금 생성한 ubuntu 컨테이너가 더 이상 컨테이너 목록에 없다는 것을 알 수 있습니다.

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

종료하면 컨테이너 실행이 중지됩니다. 그러나 컨테이너는 삭제되지 않았습니다. docker ps -a 명령을 사용하면 컨테이너 시작 여부에 관계없이 생성된 모든 컨테이너를 볼 수 있습니다.

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Exited (0) 2 minutes ago             reverent_wu

이때 상태는 2분 전 Exited(0)로 변경됩니다. , 이는 2분 전에 시작되었음을 나타냅니다. 종료 상태 코드는 0이며 정상적인 종료를 나타냅니다.

다음 명령을 사용하여 이 컨테이너를 다시 시작할 수 있습니다.

docker start 402c5d3468d7

이 명령에서는 docker start 뒤에 컨테이너 ID가 옵니다. 또는 컨테이너 이름을 사용할 수도 있습니다. 실행이 성공한 후에는 docker ps 명령을 통해 컨테이너가 시작 상태인 것을 확인할 수 있습니다. docker start 명령을 통해 컨테이너가 다시 시작된 후에는 docker run 명령에 지정된 매개변수가 사용됩니다. 시작 시 /bin/bash가 실행되어 셸을 시작하지만 컨테이너의 명령줄을 입력하지 않았습니다. docker Attach 명령을 통해 다시 입력할 수 있습니다:

docker attach 402c5d3468d7

이때 컨테이너에서는 계속해서 명령을 실행할 수 있습니다.

컨테이너가 더 이상 사용되지 않으면 docker rm 명령을 사용하여 삭제할 수 있습니다.

docker rm 402c5d3468d7

지속적인 서비스 제공

컨테이너를 사용하여 애플리케이션과 서비스를 실행하는 경우가 더 많으며, 백그라운드에서 계속 서비스를 제공하기를 바랍니다. 이때는 분리 모드(또는 데몬)를 사용해야 합니다. 모드) 컨테이너를 실행합니다. 컨테이너가 백그라운드에서 실행되도록 하려면 docker run 뒤에 -d 매개변수를 추가하기만 하면 됩니다.

다음으로 다음 명령을 통해 컨테이너를 다시 실행합니다.

docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"

이번에는 컨테이너 detached_mode를 호출하고 -d를 전달하여 분리 모드에서 실행되도록 하고 1초마다 스크립트를 실행합니다. Docker YYDS 한 줄 인쇄 .

별도 모드로 실행되기 때문에 시작 후 명령줄에서 인쇄된 내용을 볼 수 없습니다. 하지만 docker ps 명령을 통해 실행 중인 컨테이너를 볼 수 있습니다.

실행을 중지하려면 docker stop 명령을 사용하면 됩니다.

docker stop detached_mode

docker start 명령을 통해 다시 시작할 수도 있고, docker restart를 통해 실행 중인 컨테이너를 다시 시작할 수도 있습니다.

컨테이너의 실행 상태

在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。

docker logs -f detached_mode

此时就可以看到一直有 Docker YYDS 被打印。

除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。

docker top detached_mode

Docker 학습 컨테이너 사용법을 완전히 익히세요.

使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。

Docker 학습 컨테이너 사용법을 완전히 익히세요.

另外,docker exec 命令可以在容器内部运行进程。

docker exec detached_mode cat /etc/hosts

以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。

容器的详细信息

使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。

docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode

执行以上的命令,只会在命令行展示容器的 IP 地址。

推荐学习:《docker视频教程

위 내용은 Docker 학습 컨테이너 사용법을 완전히 익히세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제