이 기사는 Docker에서 컨테이너를 사용하는 방법에 대해 설명합니다.
컨테이너 실행
기존 이미지를 찾고 싶다면 GitHub 프로젝트에서 오픈소스를 찾는 것처럼 공개 Docker Hub에서 검색하면 소개와 사용법을 확인할 수 있습니다. 동일합니다.
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 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 stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。
另外,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 중국어 웹사이트의 기타 관련 기사를 참조하세요!