실제로 컨테이너 를 시작 하려면 다음을 수행하십시오.
docker run a8asd8f9asdf0
그렇다면, 무엇을 하는가 :
docker start
하다?
매뉴얼에는
하나 이상의 중지 된 컨테이너 시작
답변
이것은 매우 중요한 질문이며 대답은 매우 간단하지만 근본적입니다.
- 실행 : 이미지의 새 컨테이너를 만들고 컨테이너를 실행합니다. 동일한 이미지의 N 복제본을 만들 수 있습니다. 명령은 다음 과 같습니다.
docker run IMAGE_ID
docker run CONTAINER_ID
- 시작 : 이전에 중지 된 컨테이너를 시작합니다. 예를 들어, 명령을 사용하여 데이터베이스를 중지 한 경우 명령을 사용
docker stop CONTAINER_ID
하여 동일한 컨테이너를 다시 시작할 수docker start CONTAINER_ID
있으며 데이터와 설정이 동일합니다.
답변
run
이미지를 실행start
컨테이너를 시작합니다 .
docker run
문서는 언급을한다 :
docker run
명령은 먼저 생성 지정된 이미지 위에 기록 가능한 콘테이너 층 후 시작 지정된 명령을 사용한다.즉 고정 표시기의 인 실행이 API에 해당합니다
/containers/create
다음/containers/(id)/start
.
당신은 당신이 그것 (고정 표시기 1.3 이후) 간부 고정 표시기, 기존의 컨테이너를 실행하지 마십시오 . 종료 된 컨테이너를 다시 시작할
수 있습니다 .
답변
예를 들어 설명 :
컴퓨터에 게임 (iso) 이미지가 있다고 가정하십시오.
당신이 할 때 run
(가상 드라이브로 이미지를 마운트), 가상 드라이브가 모든 가상 드라이브에 게임 내용과 게임 설치 파일이 만들어집니다 자동으로 시작됩니다. [Docker 이미지 실행-컨테이너를 만든 다음 시작하십시오.]
그러나 stop
(도커 중지와 유사) 가상 드라이브는 여전히 존재하지만 모든 프로세스를 중지합니다. [컨테이너가 삭제되지 않을 때까지 존재 함]
그리고 당신이 할 때 start
(도커 시작과 유사) 가상 드라이브에서 게임 파일이 실행을 시작합니다. [기존 컨테이너 시작]
이 예에서-게임 이미지는 Docker 이미지이고 가상 드라이브는 컨테이너입니다.
답변
daniele3004 의 답변은 이미 꽤 좋습니다.
그냥 신속하고 더러운 최대 믹스 나 같은 사람을위한 공식 run
과 start
수시로 :
docker run [...]
= docker pull [...]
+docker start [...]
답변
run
명령은 이미지에서 컨테이너를 만든 다음이 컨테이너에서 루트 프로세스를 시작합니다. run --rm
플래그 와 함께 실행하면 나중에 쓸모없는 죽은 컨테이너를 제거하는 문제가 발생하지 docker start
않으며 존재하지 않고 docker remove
완전히 무시할 수 있습니다 .
run
명령은 몇 가지 다른 작업을 수행합니다.
docker run --name dname image_name bash -c "whoami"
- 이미지에서 컨테이너를 만듭니다. 이 시점에서 컨테이너는 ID를 가지며 이름이 주어지면 이름이 나타날 수 있습니다.
docker ps
- 컨테이너의 루트 프로세스를 시작 / 실행합니다. 위의 코드에서 실행
bash -c "whoami"
됩니다.docker run --name dname image_name
컨테이너를 실행하라는 명령없이 실행하면 즉시 중지 상태가됩니다. - 루트 프로세스가 완료되면 컨테이너가 중지됩니다. 이 시점에서 그것은 거의 쓸모가 없습니다. 더 이상 아무것도 실행하거나 컨테이너를 부활시킬 수 없습니다. 기본적으로 중지 상태를 벗어나는 두 가지 방법이 있습니다. 컨테이너를 제거하거나 중지 된 컨테이너에서 검사 점 (예 : 이미지)을 만들어 다른 것을 실행합니다.
docker remove
같은 이름으로 컨테이너를 시작하기 전에 실행 해야합니다.
컨테이너가 자동으로 정지되면 어떻게 제거합니까? 명령에--rm
플래그를추가하십시오run
.
docker run --rm --name dname image_name bash -c "whoami"
단일 컨테이너에서 여러 명령을 실행하는 방법은 무엇입니까? 루트 프로세스가 죽지 않도록합니다. --detached
플래그로 시작할 때 쓸모없는 명령을실행 한 다음 “execute”를 사용하여 실제 명령을 실행하면됩니다.
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
왜 우리는 필요 docker stop
합니까? 끝없는 명령으로 이전 스 니펫에서 시작한이 느린 컨테이너를 중지합니다tail -f /dev/null
.
답변
