> 운영 및 유지보수 > Docker > docker의 실행 명령에서 t와 d의 차이점은 무엇입니까?

docker의 실행 명령에서 t와 d의 차이점은 무엇입니까?

WBOY
풀어 주다: 2022-01-28 15:38:18
원래의
8211명이 탐색했습니다.

Docker에서 실행 명령은 새 컨테이너를 생성하고 명령을 실행하는 데 사용됩니다. 매개변수 "-t"를 설정하면 의사 입력 터미널을 컨테이너에 다시 할당할 수 있고, 매개변수 "-d"를 설정하면 컨테이너가 실행됩니다. 배경을 반환하고 컨테이너 ID를 반환합니다.

docker의 실행 명령에서 t와 d의 차이점은 무엇입니까?

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

docker의 실행 명령에서 t와 d의 차이점은 무엇입니까?

docker run: 새 컨테이너를 만들고 명령을 실행합니다.

Syntax

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
로그인 후 복사

OPTIONS 설명:

  • -a stdin: 표준을 지정합니다. 입력 및 출력 콘텐츠 유형, 선택 사항 STDIN/STDOUT/STDERR;

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

  • -i: 일반적으로 다음과 함께 사용되는 대화형 모드로 컨테이너를 실행합니다. -t;

  • -P: 무작위 포트 매핑, 컨테이너의 내부 포트가 호스트의 포트

  • -p: 포트 매핑 지정, 형식: 호스트(호스트) 포트: 컨테이너 포트

  • -t: 컨테이너 다시 매핑 일반적으로 -i와 함께 사용되는 의사 입력 터미널 할당

  • --name="nginx-lb": 컨테이너의 이름을 지정합니다. 8.8.8.8: 컨테이너에서 사용하는 DNS 서버를 지정합니다. 기본값은 호스트와 일치합니다.

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

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

  • - e username="ritchie": 환경 변수 설정

  • --env-file=[]: 다음에서 환경 변수를 읽습니다. 지정된 파일

  • --cpuset="0-2" 또는 --cpuset= "0,1,2": 컨테이너를 지정된 CPU에 바인딩하여 실행합니다.

  • -m: 최대값을 설정합니다. 컨테이너의 메모리 사용량

  • --net="bridge": 지원되는 브리지/호스트/없음/컨테이너의 네트워크 연결 유형을 지정합니다.

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

  • --expose=[]: 포트 또는 포트 그룹 열기

  • --volume, -v: 볼륨 바인딩

  • 예: "I "백그라운드에서 미러를 실행하고 싶습니다"라는 명령을 실행했을 때 다음 명령을 실행했을 때

    docker run -d --name server somebody:dockerfile
    로그인 후 복사
  • docker ps를 통해 작업이 성공했는지 확인했는데 성공적으로 실행되지 않은 것으로 나타났습니다. 무슨 상황인가요? ? 백그라운드에서 실행하려면 -d 매개변수를 사용할 필요가 없나요? 실제로 주된 이유는 이 이미지 끝에 CMD가 추가되어 있을 수 있다는 것입니다. 이는
CMD ["/bin/bash"]
로그인 후 복사

와 유사합니다. 즉, 백그라운드에서 실행할 때 이 이미지로 생성된 컨테이너가 먼저 /bin/bash를 실행합니다. , 이는 백그라운드에서 실행될 때(-d ) 쉘이 즉시 종료됨을 의미합니다. 따라서 명령이 포그라운드에서 실행되지 않는 한 컨테이너는 즉시 중지됩니다.

해결 방법

-i 또는 -t

docker run -i -d images:tags
docker run -t -d images:tags
docker run -itd images:tags
로그인 후 복사
를 통해 -d에 의사 "tty n"을 제공하세요

tail -f /dev/null을 command

이렇게 하면 tail이 전경에서 계속 실행되기 때문에 main command가 백그라운드에서 실행 중이더라도 컨테이너가 멈추지 않습니다.

docker run -d centos tail -f /dev/null
로그인 후 복사

다른 상황(컨테이너에 들어가는 경우)도 마찬가지입니다. Docker는 공식적으로 -i 및 -t를 사용하여 셸처럼 작동하도록 권장합니다.

docker run -i -t <images:tags>
로그인 후 복사

추천 학습: "

docker 비디오 튜토리얼

"

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿