마침내 도커를 가동하고 실행하는 방법을 알아 냈습니다.
docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu
나는 그것을 redis 인스턴스에 연결했습니다.
이것은 처음부터이며 redis 인스턴스를 만들 때
docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis
원격 저장소에서 이미지를 가져 옵니까?
NodeBB는 Dockerfile
https://github.com/NodeBB/NodeBB/blob/master/Dockerfile을 제공 합니다. 사용 방법을 잘 모르겠습니다. 원격에서이 Dockerfile을 호출하여 어떻게 든 로컬 환경을 만들 수 있다고 가정하고 있습니다.
이 올바른지? 그렇다면 원격을 가리키는 로컬 인스턴스를 어떻게 만들 수 있습니까?
답변
파일을 다운로드하고 동일한 디렉토리에서 실행하십시오. docker build -t nodebb .
그러면 컨테이너를 시작할 수있는 nodebb라는 로컬 머신의 이미지가 제공됩니다 docker run -d nodebb
( nodebb 를 자신의 이름으로 변경할 수 있음 ).
답변
Dockerfile에서 컨테이너를 시작할 수 없습니다.
프로세스는 다음과 같습니다.
Dockerfile = [
docker build
] => Docker 이미지 = [docker run
] => Docker 컨테이너
컨테이너를 시작 (또는 실행)하려면 이미지가 필요합니다. 이미지를 생성하려면 Dockerfile [1]을 빌드해야합니다.
[1] : docker import
tarball 또는 다시 이미지에서 이미지 를 가져올 수도 있습니다 docker load
.
답변
위의 답변을 사용할 수 있었지만 이것은 정말 도움이되었으므로 여기에도 넣습니다.
에서 문서 :
컨텍스트를 지정하는 대신 URL에 단일 Dockerfile을 전달하거나 STDIN을 통해 파일을 파이프 할 수 있습니다. STDIN에서 Dockerfile을 파이프하려면 다음을 수행하십시오.
$ docker build - < Dockerfile
Windows에서 Powershell을 사용하면 다음을 실행할 수 있습니다.
Get-Content Dockerfile | docker build -
빌드가 완료되면 다음 명령을 실행하십시오.
docker image ls
다음과 같은 내용이 표시됩니다.
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 123456789 39 seconds ago 422MB
실제 이미지 ID를 복사 한 다음 실행하십시오.
docker run 123456789
끝에있는 숫자는 이전 단계의 실제 이미지 ID입니다.
이미지 ID를 기억하지 않으려면 다음과 같이 이미지에 태그를 지정할 수 있습니다.
docker tag 123456789 pavel/pavel-build
이미지에 태그를 지정합니다. pavel/pavel-build
답변
간단하고 쉬운 솔루션은 다음과 같습니다.
docker build .
=> ....
=> Successfully built a3e628814c67
docker run -p 3000:3000 a3e628814c67
3000
-모든 포트가 될 수 있습니다.
a3e628814c68
-성공 빌드 명령에 의해 주어진 해시 결과
참고 : Dockerfile 이 포함 된 디렉터리 내에 있어야합니다 .