docker run
및 docker create
명령 의 차이점은 무엇입니까 ?
나는 일반적으로 사용 run
하지만 때로는 문서에서 create
.
도커의 --help
말
create Create a new container
run Run a command in a new container
run
새 컨테이너에 명령을 전달해야 할 때 사용 된다는 의미 입니까? 그렇다면 목표는 무엇입니까 create
?
답변:
Docker 문서에서
docker create 명령은 지정된 이미지 위에 쓰기 가능한 컨테이너 계층을 만들고 지정된 명령을 실행할 수 있도록 준비합니다. 그런 다음 컨테이너 ID가 STDOUT에 인쇄됩니다. 이다 고정 표시기 실행 유사 -d 컨테이너가 시작되지 않습니다 제외 . 그런 다음 docker start 명령을 사용하여 언제든지 컨테이너를 시작할 수 있습니다.
이는 경우에 유용합니다 당신이 할 컨테이너 설정 구성을 미리 시간을 당신이 그것을 필요로 할 때 시작할 준비가되도록. 새 컨테이너의 초기 상태가 생성됩니다.
docker create
명령 은 이미지에서 쓰기 가능한 컨테이너를 생성하고 .
docker run
명령 은 컨테이너 (와 동일 docker create
)를 만들고 시작합니다 .
다른 답변에는 이것을 다루었지만 실제로는 명확하기 때문에 동등한 셸 명령 줄을 보여줄 것이라고 생각했습니다.
$ docker run myimage
와 같다
$ docker start -a $(docker create myimage)
여기서, docker create
지정된 화상으로부터 용기를 만드는 데 사용하고, 생성 출력한다 컨테이너 ID를 하고 docker start
그 ID를 사용하여 컨테이너를 시작하는 데 사용된다. 이 -a
옵션은 컨테이너가의 기본 동작 인 포 그라운드에서 실행되도록 터미널이 연결되도록합니다 docker run
.
생성되었지만 시작되지 않은 컨테이너는 Created
상태가됩니다. 이것은로 볼 수 있습니다 docker container ls -a
.
Docker 실행 은 기본적으로 컨테이너에서 명령을 실행하기위한 것입니다.
docker run -it <Container Name> /bin/bash
위는 bash 터미널을 만들기위한 것입니다. 그리고 컨테이너에서 bash 명령을 사용하도록합니다.
Docker create 는 Docker 이미지에서 컨테이너를 만드는 것입니다.
docker create -d /var/lib:/var/lib --name docker-ubuntu ubuntu
위는 이미지 "ubuntu"에서 "docker-ubuntu"라는 이름의 컨테이너를 Docker로 만드는 것입니다.
docker run -it <Container name>
/ bin / bash 없이도 할 수 있습니다 . 예를 들어 루비는 irb라는 실행 파일을 자동 실행합니다. 또한 로그온하지 않는 dockersamples / static-site로 수행되는 -d를 실행할 수 있습니다. 그래서 저는 그것이 exec를 수행하지 않고 단지 시작한다고 생각합니다.