>  기사  >  운영 및 유지보수  >  docker run과 docker exec 명령의 차이점은 무엇입니까?

docker run과 docker exec 명령의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-11-25 16:44:2910859검색

차이점: 1. "docker run"의 작업 개체는 "mirror"이고, "docker exec"의 작업 개체는 "container"입니다. 2. "docker run"은 실행 중인 컨테이너가 없는 상황에 적합합니다. "docker exec" 기존 컨테이너에서 명령을 실행하는 데 적합합니다.

docker run과 docker exec 명령의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.

docker run과 docker exec


docker run의 차이점: 이미지를 기반으로 컨테이너를 만들고 명령을 실행합니다. 작업 개체는 image입니다.
docker exec

:

실행 중인 컨테이너에서 명령을 실행하며 작업 대상은 container입니다. "docker run"은 일반적으로 새로 생성된 컨테이너에서 사용되는 명령입니다. 실행 중인 컨테이너가 없고 컨테이너를 생성하고 시작한 다음 컨테이너에서 프로세스를 실행하려는 상황에 적합합니다. "docker exec"는 기존 컨테이너에서 명령을 실행하는 데 적합합니다. 이미 실행 중인 컨테이너가 있고 이를 변경하거나 컨테이너에서 무언가를 얻으려는 경우 "docker exec" 명령을 사용하는 것이 완벽합니다.

docker run command


Syntax

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

OPTIONS 설명:

    -a stdin
  • :

    표준 입력 및 출력 콘텐츠 유형을 지정합니다. 선택적으로 STDIN/STDOUT/STDERR;

  • -d
  • :

    백그라운드에서 컨테이너를 실행하고 컨테이너 ID를 반환합니다.

  • -i
  • :

    일반적으로 -t와 함께 사용되는 대화형 모드로 컨테이너를 실행합니다. -P : 임의 포트 매핑, 컨테이너 내부 포트 임의로

  • 가 호스트의 상위 포트
  • -p:포트 매핑을 지정합니다. 형식은 Host( 호스트) port

    :
  • 컨테이너 포트
  • -t:는 일반적으로 -i와 함께 사용되는 의사 입력 터미널을 다시 할당합니다.

  • --name="nginx-lb ": 컨테이너에 대한 이름을 지정합니다.

  • --dns 8.8.8.8: 기본적으로 호스트와 일치하는 컨테이너에서 사용하는 DNS 서버를 지정합니다.

  • --dns-search example.com: 컨테이너 DNS 검색 도메인 이름을 지정합니다. 기본값은 호스트와 동일합니다.

  • -h "mars": 컨테이너의 호스트 이름을 지정합니다.

  • -e 사용자 이름="ritchie"

    : 환경 변수 설정

  • --env-file=[]

    : 지정된 파일에서 환경 변수 읽기

  • --cpuset="0-2" 또는 --cpuset="0,1,2"

    : 컨테이너를 지정된 CPU에 바인딩하여 실행합니다.

  • -m

    : 최대 메모리 사용량을 설정합니다.

  • --net="bridge"

    : 컨테이너 유형의 네트워크 연결을 지정합니다. bridge/host/none/container:335a154c0208f0223836dc6056f09ba1 --link=[]

    :
  • 다른 컨테이너에 링크 추가
  • - -expose=[]

    :
  • 포트 또는 포트 그룹 열기
  • - -volume, -v

    :
  • 볼륨 바인딩
  • Instance

  • Docker 이미지 사용 nginx:latest 백그라운드 모드에서 컨테이너를 시작하고 컨테이너 이름을 my-nginx로 지정합니다.
  • docker run --name my-nginx -p 8081:80 -d nginx:latest

    브라우저가 http://host IP:8081에 액세스하면 효과는 다음과 같습니다.

nginx:latest 이미지를 사용하여 백그라운드 모드에서 컨테이너를 시작하고 컨테이너의 포트 80을 호스트의 임의 포트:
docker run -P -d nginx:latest

使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data:

docker run -p 80:80 -v /data:/data -d nginx:latest

使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令:

docker run -it nginx:latest /bin/bash


docker exec 命令

语法

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

OPTIONS说明:

  • -d分离模式: 在后台运行

  • -i :  即使没有附加也保持STDIN 打开

  • -t分配一个伪终端

在容器名称 my-nginx 中开启一个交互模式的终端:

docker exec -it my-nginx /bin/bash

或者使用容器ID 721eb23901ce 开启一个交互模式的终端:

docker exec -it 721eb23901ce /bin/bash

推荐学习:《docker视频教程

위 내용은 docker run과 docker exec 명령의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.