차이점: 1. "docker run"의 작업 개체는 "mirror"이고, "docker exec"의 작업 개체는 "container"입니다. 2. "docker run"은 실행 중인 컨테이너가 없는 상황에 적합합니다. "docker exec" 기존 컨테이너에서 명령을 실행하는 데 적합합니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
docker run의 차이점: 이미지를 기반으로 컨테이너를 만들고 명령을 실행합니다. 작업 개체는 image입니다.
docker exec
실행 중인 컨테이너에서 명령을 실행하며 작업 대상은 container입니다. "docker run"은 일반적으로 새로 생성된 컨테이너에서 사용되는 명령입니다. 실행 중인 컨테이너가 없고 컨테이너를 생성하고 시작한 다음 컨테이너에서 프로세스를 실행하려는 상황에 적합합니다. "docker exec"는 기존 컨테이너에서 명령을 실행하는 데 적합합니다. 이미 실행 중인 컨테이너가 있고 이를 변경하거나 컨테이너에서 무언가를 얻으려는 경우 "docker exec" 명령을 사용하는 것이 완벽합니다.
docker run command
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
표준 입력 및 출력 콘텐츠 유형을 지정합니다. 선택적으로 STDIN/STDOUT/STDERR;
백그라운드에서 컨테이너를 실행하고 컨테이너 ID를 반환합니다.
일반적으로 -t와 함께 사용되는 대화형 모드로 컨테이너를 실행합니다. -P : 임의 포트 매핑, 컨테이너 내부 포트 임의로
-p:포트 매핑을 지정합니다. 형식은 Host( 호스트) port
:-t:는 일반적으로 -i와 함께 사용되는 의사 입력 터미널을 다시 할당합니다.
--name="nginx-lb ": 컨테이너에 대한 이름을 지정합니다.
--dns 8.8.8.8: 기본적으로 호스트와 일치하는 컨테이너에서 사용하는 DNS 서버를 지정합니다.
--dns-search example.com: 컨테이너 DNS 검색 도메인 이름을 지정합니다. 기본값은 호스트와 동일합니다.
-h "mars": 컨테이너의 호스트 이름을 지정합니다.
: 환경 변수 설정
: 지정된 파일에서 환경 변수 읽기
: 컨테이너를 지정된 CPU에 바인딩하여 실행합니다.
: 최대 메모리 사용량을 설정합니다.
: 컨테이너 유형의 네트워크 연결을 지정합니다. bridge/host/none/container:335a154c0208f0223836dc6056f09ba1 --link=[]
:- -expose=[]
:- -volume, -v
:Instance
docker run --name my-nginx -p 8081:80 -d nginx:latest
브라우저가 http://host IP:8081에 액세스하면 효과는 다음과 같습니다.
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 [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 중국어 웹사이트의 기타 관련 기사를 참조하세요!