도커 이해 실습부터 기본 원리까지 (6-1)|도커 컨테이너 기본 소개 + 자세한 명령어 설명

여기에 이미지 설명을 삽입하세요.

머리말

그래서 여기 블로거는 유용한 정보로 가득 찬 칼럼을 가지고 있습니다!

첫 번째는 블로거의 수준 높은 블로그를 요약한 것입니다. 이 칼럼의 블로그는 모두 블로거가 정성껏 작성한 블로그이며 유용한 정보가 가득합니다. 모든 분들께 도움이 되기를 바랍니다.

그리고 최근 블로거가 가장 많은 시간을 쏟고 있는 칼럼 "Docker의 실현부터 실천, 기본원칙까지" 입니다. 많은 관심 부탁드립니다!


컨테이너란 무엇입니까?

일반인의 관점에서 컨테이너는 이미지를 실행하는 엔터티입니다. 이미지는 정적 읽기 전용 파일인 반면, 컨테이너에는 런타임에 필요한 쓰기 가능한 파일 계층이 있고 컨테이너의 프로세스는 실행 중인 상태입니다. 즉, 컨테이너는 실제 애플리케이션 프로세스를 실행합니다. 컨테이너에는 초기 생성, 실행 중, 중지, 일시 중지, 삭제의 5가지 상태가 있습니다. 컨테이너의 본질은 호스트에서 실행되는 프로세스이지만 컨테이너에는 자체적으로 독립적인 네임스페이스 격리 및 리소스 제한이 있습니다. 즉, 컨테이너 내부에서는 호스트의 프로세스, 환경변수, 네트워크 등의 정보를 볼 수 없다는 것이 컨테이너와 호스트에서 직접 실행되는 프로세스의 본질적인 차이점이다. 컨테이너는 이미지를 기반으로 생성되어 독립적으로 존재하는 실행 가능한 인스턴스로, 하나의 이미지로 여러 개의 컨테이너를 생성할 수 있습니다. 컨테이너화된 환경을 실행할 때 이 파일 시스템의 읽기-쓰기 복사본이 실제로 컨테이너 내부에 생성됩니다. 이렇게 하면 이미지 전체 복사본을 수정할 수 있는 컨테이너 레이어가 추가됩니다.

컨테이너 수명주기

  1. 생성됨: 초기 생성 상태
  2. 실행 중: 실행 중 상태
  3. 중지됨: 중지된 상태
  4. 일시 중지됨: 일시 중지된 상태
  5. 삭제됨: 삭제된 상태

명령 제어 상태 전환

  • docker run: 컨테이너를 생성하고 즉시 실행을 시작하고 실행 상태로 들어갑니다.

  • docker start: 컨테이너가 실행 상태로 변경됩니다.

  • docker stop: 컨테이너가 중지된 상태로 들어갑니다.

  • docker kill: 컨테이너가 실패(충돌)할 때 kill(전원 끄기)을 실행하면 컨테이너가 중지된 상태로 들어갑니다. 이 작업은 데이터를 잃기 쉬우므로 꼭 필요한 경우가 아니면 권장하지 않습니다.

  • docker restart: 컨테이너를 다시 시작하면 컨테이너가 실행 상태로 들어갑니다.

  • docker pause: 컨테이너가 일시 중지된 상태로 들어갑니다.

  • docker unpause: 일시정지 상태를 취소하고 컨테이너는 실행 상태로 들어갑니다.

  • docker rm: 컨테이너를 삭제하면 컨테이너가 삭제된 상태가 됩니다.

  • killed by out-of-memory(메모리 부족으로 인해 종료됨): 호스트 메모리가 모두 소진된 상태, OOM: 계획되지 않은 종료라고도 하며 이때 메모리를 가장 많이 소모하는 컨테이너를 종료해야 합니다.

  • container process exitde(비정상 종료): 컨테이너가 종료된 후 다시 시작해야 할까요? 선택 작업이 시작됩니다.

    • yes를 다시 시작해야 하며 컨테이너는 시작 명령을 실행하여 실행 상태로 들어갑니다.
    • 아니요는 다시 시작할 필요가 없으며 컨테이너는 중지된 상태로 전환됩니다.

컨테이너 명령어에 대한 자세한 설명

명령 목록

주문하다 별명 기능
도커 생성 도커 컨테이너 생성 컨테이너 생성
도커 실행 도커 컨테이너 실행 컨테이너 실행
도커 연결 도커 컨테이너 연결 실행 중인 컨테이너에 연결
도커 커밋 도커 컨테이너 커밋 이미지를 컨테이너로 제출
도커 CP 도커 컨테이너 CP 컨테이너와 호스트 간 복사
도커 차이점 도커 컨테이너 차이점 컨테이너의 파일 구조 변경 사항을 확인하세요.
도커 실행 도커 컨테이너 exec 실행 중인 컨테이너에서 명령 실행
도커 내보내기 도커 컨테이너 내보내기 컨테이너를 tar로 내보내기
도커 컨테이너 검사 컨테이너 세부정보 보기
도커 킬 도커 컨테이너 킬 컨테이너를 죽여라
도커 로그 도커 컨테이너 로그 로그 보기
도커 ps 도커 컨테이너 ls
도커 컨테이너 목록
도커 컨테이너 ps
실행 중인 프로세스 보기
도커 일시 중지 도커 컨테이너 일시 중지 일시 중지 프로세스
도커 포트 도커 컨테이너 포트 컨테이너의 포트 매핑을 확인하세요.
도커 컨테이너 정리 중지된 컨테이너 제거
도커 이름 바꾸기 도커 컨테이너 이름 바꾸기 중명명 용기
도커 재시작 도커 컨테이너 다시 시작 컨테이너 다시 시작
도커 RM 도커 컨테이너 rm
도커 컨테이너 제거
컨테이너 삭제
도커 시작 도커 컨테이너 시작 컨테이너 시작
도커 통계 도커 컨테이너 통계 리소스 사용량 정보 보기
도커 중지 도커 컨테이너 중지 컨테이너 중지
도커 탑 도커 컨테이너 상단 컨테이너의 리소스 사용량 확인
도커 일시 중지 해제 도커 컨테이너 일시중지 해제 컨테이너 계속 실행
도커 업데이트 도커 컨테이너 업데이트 컨테이너 구성 업데이트
도커 잠깐만요 도커 컨테이너 대기 하나 이상의 컨테이너가 중지되는 것을 방지하고 종료 코드를 인쇄합니다.

도커 생성

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

매개변수는 기본적으로 docker run과 동일합니다.

-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
-h "mars": 指定容器的 hostname;
-e username="ritchie": 设置环境变量;
--cpuset-cpus="0-2" / --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
-m :设置容器使用内存最大值;
--network="bridge": 指定容器的网络连接类型;
--link=[]: 添加链接到另一个容器;
--volume , -v: 绑定一个卷
--rm :shell 退出的时候自动删除容器
--restart:自动重启

도커 로그

docker logs [OPTIONS] CONTAINER

매개변수

-f, --follow: 跟踪日志输出
--since : 显示某个开始时间的所有日志
-t, --timestamps : 显示时间戳
--tail : 仅列出最新 N 条容器日志

먼저 컨테이너를 시작하세요.

여기에 이미지 설명을 삽입하세요.

현재 실행 중인 컨테이너를 봅니다.

[root@ALiCentos7:~]$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS                                   NAMES
e8a7b485c2ae   nginx:1.21.4   "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp, :::8080->80/tcp   mywebsite1

로그를 봅니다.

여기에 이미지 설명을 삽입하세요.

-f실시간으로 결과를 출력하는 옵션.

여기에 이미지 설명을 삽입하세요.

도커 연결

실행 중인 컨테이너에 연결합니다.

docker attach [OPTIONS] CONTAINER
--sig-proxy : 是否将所有信号代理,默认是 true,如果设置为 false,退出的话不会影响容器,否则退出会导致容器退出。

이해하기 쉽습니다. 컨테이너에 연결되어 있습니다.

여기에 이미지 설명을 삽입하세요.

이 bash에서 이 컨테이너의 io 정보를 받을 수 있는데, 이렇게 하면 ^C컨테이너도 종료됩니다.

즉, 연결한 후 컨테이너는 이 bash에서 보낸 신호를 수신할 수 있습니다.

여기에 이미지 설명을 삽입하세요.

그러나 활성화되면 --sig-proxy신호가 프록시됩니다.

도커 실행

컨테이너에서 명령을 실행합니다.

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

매개변수

-d : 分离模式: 在后台运行
-i : 即使没有附加也保持 STDIN 打开
-t : 分配一个伪终端
-e : 设置环境变量
-u, --user : 指定用户 "<name|uid>[:<group|gid>]"
-w, --workdir: 指定工作目录

관행.

여기에 이미지 설명을 삽입하세요.

도커 시작 과 도커 중지

매우 간단합니다. 예를 살펴보세요.

여기에 이미지 설명을 삽입하세요.

하지만 docker stop매개변수가 있습니다.

-s : 发送的信号

여기에 이미지 설명을 삽입하세요.

도커 재시작

컨테이너 다시 시작

docker restart [OPTIONS] CONTAINER [CONTAINER...]
-s : 发送信号

여기에 이미지 설명을 삽입하세요.

도커 킬

강제 종료 컨테이너

매개변수:-s :发送的信号

  • docker stop은 SIGTERM신호를 보내고, docker kill은 SIGKILL신호를 보냅니다.

docker kill컨테이너를 더 격렬하게 죽일 것입니다.

여기에 이미지 설명을 삽입하세요.

도커 탑

컨테이너에서 실행 중인 프로세스 정보를 확인하고 ps 명령 매개변수를 지원합니다.

docker top CONTAINER [ps OPTIONS]

컨테이너에는 실행 중 명령을 /bin/bash대화형으로 실행하기 위한 터미널이 반드시 있는 것은 아니며, 컨테이너에서 실행 중인 프로세스를 보는 데 사용할 수 있는 명령이 top 반드시 있는 것도 아닙니다 .topdocker top

여기에 이미지 설명을 삽입하세요.

도커 통계

CPU, 메모리, 네트워크 I/O 등을 포함한 컨테이너 리소스의 사용량을 표시합니다.

docker stats [OPTIONS] [CONTAINER...]

매개변수

--all , -a : 显示所有的容器,包括未运行的。
--format : 指定返回值的模板文件。如 table,json
--no-stream : 展示当前状态就直接退出了,不再实时更新。
--no-trunc : 不截断输出。

도커 컨테이너 검사

컨테이너 세부정보 보기

docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

매개변수

-f : 指定返回值的模板文件。如 table、json
-s : 显示总的文件大小。

여기에 이미지 설명을 삽입하세요.

파일 로 리디렉션될 수 있습니다 .json.

docker container inspect mywebsite > mywebsite_docker_tmp.json

여기에 이미지 설명을 삽입하세요.

도커 포트

지정된 컨테이너에 대한 포트 매핑을 나열하거나 공개적으로 PRIVATE_PORT NAT를 찾는 데 사용됩니다.

docker port CONTAINER [PRIVATE_PORT[/PROTO]]

도커 CP

컨테이너와 호스트 간 파일 복사

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

여기에 이미지 설명을 삽입하세요.

도커 차이점

docker diff CONTAINER

도커 커밋

컨테이너에서 새 이미지를 만듭니다.

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

매개변수

-a : 提交的镜像作者;
-c : 使用 Dockerfile 指令来创建镜像;可以修改启动指令
-m : 提交时的说明文字;
-p : 在 commit 时,将容器暂停
docker commit mywebsite mywebsite-yufc:v1.0

여기에 이미지 설명을 삽입하세요.

도커 일시 정지 와 도커 일시 정지 해제

컨테이너의 모든 프로세스를 일시 중지합니다.

docker pause CONTAINER [CONTAINER...]

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

도커 RM

정지된 용기를 제거하십시오.

docker rm [OPTIONS] CONTAINER [CONTAINER...]

주요 매개변수:

-f : 通过 SIGKILL 信号强制删除一个运行中的容器

도커 잠깐만요

컨테이너가 중지될 때까지 실행을 차단한 다음 종료 코드를 인쇄합니다.

docker wait CONTAINER [CONTAINER...]

먼저 컨테이너를 실행한 다음 종료하고 docker wait종료 코드를 인쇄합니다.

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

도커 이름 바꾸기

컨테이너 이름 바꾸기

docker rename CONTAINER NEW_NAME

도커 컨테이너 정리

docker container prune [OPTIONS]

매개변수

-f, --force : 不提示是否进行确认

도커 업데이트

컨테이너 구성 업데이트

docker update [OPTIONS] CONTAINER [CONTAINER...]

매개변수

--cpus :cpu 数量
--cpuset-cpus : 使用哪些 cpu
--memory : 内存限制
--memory-swap :交换内存
--cpu-period : 是用来指定容器对 CPU 的使用要在多长时间内做一次重新分配
--cpu-quota :是用来指定在这个周期内,最多可以有多少时间用来跑这个容器

Je suppose que tu aimes

Origine blog.csdn.net/Yu_Cblog/article/details/132946889
conseillé
Classement