Docker 이미지를 컨테이너로 실행
dockerfile에서 도커 이미지를 만들었습니다. 이미지가 성공적으로 구축 된 것을 확인했지만 어떻게해야합니까? 컨테이너로 실행할 수 없습니까?
도커를 처음 접했을 때 내 생각에 오해가 있으면 도움이 될 것입니다.
이미지를 실행하는 구체적인 방법은 이미지에 태그 / 이름을 부여했는지 여부에 따라 다릅니다.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
이름으로 ( 우분투를 사용합시다 ) :
$ docker run -i -t ubuntu:12.04 /bin/bash
이름이 없으면 ID를 사용하십시오.
$ docker run -i -t 8dbd9e392a96 /bin/bash
자세한 내용은 https://docs.docker.com/engine/reference/run/ 을 참조하십시오.
다음 단계를 수행하십시오.
$ docker images
태그가 지정된 모든 로컬 도커 이미지 목록이 표시됩니다.
$ docker run image_name:tag_name
지정하지 않으면
tag_name
'latest'태그가있는 이미지가 자동으로 실행됩니다.대신
image_name
이미지 ID (tag_name 없음)를 지정할 수도 있습니다.
도커 이미지를 나열하려면
$ docker images
응용 프로그램이 포트 80으로 실행되고 8080과 같이 로컬로 바인딩 할 다른 포트를 노출 할 수있는 경우
$ docker run -d --restart=always -p 8080:80 image_name:version
당신은 사용 가능한 이미지를 볼 수 있습니다
docker images
그런 다음 분리 모드에서 실행할 수 있으므로 터미널을 계속 사용할 수 있으며 저장소 이름 (태그가 있거나없는) 또는 이미지 ID를 사용하여 여러 가지 옵션을 실행할 수 있습니다
docker run -d repository
docker run -d repository:tag
docker run -d image_id
그런 다음 컨테이너가 사용 중인지 확인할 수 있습니다.
docker ps
docker ps는 컨테이너 ID를 제공합니다 .2 / 3 첫 문자 만 사용하여 컨테이너에 들어갈 수 있습니다
docker exec -it container_id /bin/bash
당신이 사용을 중지 할 수 있습니다 docker stop container_id
및docker rm container_id
컨테이너를 -rm
인수 와 함께 실행할 수도 있으므로 컨테이너를 중지하면 컨테이너가 자동으로 제거됩니다.
이 명령을 사용하여 실행하려는 이미지의 이름 또는 ID를 가져옵니다. docker images
docker run 명령은 다음과 같은 방식으로 사용됩니다.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
아래에는 이미지 이름이나 ID를 지정하기 전에 디스패치, 이름, 게시, 볼륨 및 재시작 옵션이 포함되어 있습니다.
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
어디 :
--detach , -d Run container in background and print container ID
--name Assign a name to the container
--publish , -p Publish a container’s port(s) to the host
--volume , -v Bind mount a volume
--restart Restart policy to apply when a container exits
자세한 내용은 공식 도커 실행 참조 를 확인하십시오.
다음은 docker에서 webdev 서비스를 실행하는 예입니다.
이미지 이름은 morrisjobke / webdav 입니다. dockerhub에서 가져올 수 있습니다.
이 이미지를 실행 한 후에서 WebDAV 인스턴스에 액세스 할 수 있습니다 http://localhost:8888/webdav
. 내부적으로 폴더 /var/webdav
는 WebDAV 루트로 사용됩니다.
이 컨테이너는 다음과 같은 방법으로 실행할 수 있습니다. $ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
나는 같은 문제가 있었다. 도커를 실행하고 특정 CONTAINER_ID로 컨테이너를 만들었으며 동일한 컨테이너로 작업하고 싶었습니다.
먼저 도커를 실행하십시오.
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
그런 다음 모든 컨테이너를 나열하십시오.
sudo docker ps -a
작업 할 컨테이너를 선택하십시오 (광산은 167ddd6d7f15입니다)
sudo docker start -ai 167ddd6d7f15
docker-file에서 이미지를 만들었으므로 이미지가 현재 활성 상태가 아닙니다. 작업하려면 컨테이너 내에서이 이미지를 실행해야합니다.
$ docker images
명령은 로컬 저장소에서 현재 사용 가능한 이미지 수를 설명합니다. 과
docker ps -a
현재 사용 가능한 컨테이너 수를 나타냅니다. 예 : 활성 및 종료 된 컨테이너 목록
컨테이너에서 이미지를 실행하는 두 가지 방법이 있습니다
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
분리 모드
-d=false: Detached mode: Run container in the background, print new container id
대화식 모드
-i :Keep STDIN open even if not attached
docker run 명령은 다음과 같습니다.
$ docker run image_name:tag_name
docker run에 대한 자세한 내용은 https://docs.docker.com/engine/reference/run/ 을 방문 하십시오.
도커를 이해하는 가장 좋은 자료입니다.
같은 문제가 있지만 다음과 같은 오류가 발생한 사람들에게
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
그래서 나를 위해 일한 Entrypoint를 추가했습니다.
bash가없는 이미지의 경우 docker run -it --entrypoint / bin / sh입니다.
예 (승인 된 예에서) :
run -it --entrypoint /bin/sh ubuntu:12.04
참조 : https://gist.github.com/mitchwongho/11266726
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
참고 URL : https://stackoverflow.com/questions/18497688/run-a-docker-image-as-a-container
'Programming' 카테고리의 다른 글
진행률 대화 상자와 백그라운드 스레드가 활성화되었을 때 화면 방향 변경을 처리하는 방법은 무엇입니까? (0) | 2020.02.11 |
---|---|
유효한 응답을 제공 할 때까지 사용자에게 입력 요청 (0) | 2020.02.11 |
Javascript의 문자열에서 해시 생성 (0) | 2020.02.11 |
파이썬이 사전에 새로운 아이템 추가 (0) | 2020.02.11 |
노드가 존재하지 않는 경우 디렉토리를 작성하는 방법은 무엇입니까? (0) | 2020.02.11 |