2017-11-16 11 views
0

nodejs 응용 프로그램의 Docker 컨테이너를 만들고 있습니다. 다음은이 부두 노동자 허브에서 노드 이미지를 다운로드하고 다음 구성에 따라 도커 이미지를 만들 것입니다 내 도커 구성 파일Docker 구성 파일에서 Docker 개인 레지스트리 자격 증명을 지정하는 방법?

FROM node:6.11 
WORKDIR /usr/src/app 
COPY package.json . 
npm install 
copy . /usr/src/app 
EXPOSE 80 
CMD [ "npm", "start" ] 

의 샘플입니다.

보안상의 이유로 Docker 허브에서 nodejs 이미지를 다운로드하지 않고 대신 개인 저장소를 사용하여 nodejs 이미지를 다운로드하려고합니다.

개인 저장소를 설정 했으므로 DockerFile에서 레지스트리 자격 증명을 지정하는 방법을 모르겠습니다.

아무도 도와 줄 수 있습니까?

답변

1

기본적으로 docker는 Dockerhub에서 모든 이미지를 가져옵니다. 다른 레지스트리에서 이미지를 가져 오려면 이미지 이름 앞에 레지스트리 URL을 붙여야합니다. official docker pull documentation을 확인하십시오. 첫 번째는

는 등의 Dockerfile 내부 명시 적으로 레지스트리를 지정하려면 :

귀하의 경우

, 당신은 두 가지 옵션이 있습니다 당신이 빌드하면

FROM <registry>:<port>/node:6.11 
WORKDIR /usr/src/app 

를, 이미지는 민간에서 다운로드됩니다 기재. docker login 명령을 사용하여 빌드하기 전에 레지스트리에 로그인했는지 확인하십시오.

또는 docker 파일을 변경하지 않으려는 경우. docker pull <registry>:<port>/node:6.11를 사용하여 개인 레지스트리에서 이미지를 당기고 나는 이미 해당 지역의 고정 표시기 레지스트리에 nodejs 이미지를 가지고 추측 만 node:6.11

docker tag <registry>:<port>/node:6.11 node:6.11 
1

Docker 이미지를 만들기 전에 개인 레포에 docker login을해야합니다. 그런 다음 명시 적 또는 암시 적으로 FROM을 통해 해당 레지스트리를 사용하게됩니다 (이미지를 찾을 수없는 경우 해당 문서를 찾을 수 없지만 Docker 허브에도 대체 될 것으로 의심됩니다. 그러나 종속성이있을 수 있습니다). ????)

0

에 태그를 추가하여이 이미지를 사용하는 고정 표시기 빌드를 강제로. 로컬 고정 표시기 레지스트리에서 nodejs 이미지를 끌어하려면 다음

  • 확실히 당신의 고정 표시기 데몬이 레지스트리에 이미지를 가리 키도록 여기에 언급 https://docs.docker.com/engine/reference/commandline/dockerd/
  • 변경 Dockerfile로 지역 고정 표시기 레지스트리 사용 --insecure-registry <registry_address>:<port> 가리키는되어 있는지 확인합니다. FROM <registry_address>:<port>/node:6.11 (실제로 이것은 로컬 도커 레지스트리에서 nodejs 이미지의 완전한 이름이됩니다)
  • docker login 명령 https://docs.docker.com/engine/reference/commandline/login/을 사용하여 레지스트리 자격 증명을 설정하거나 ~/.docker/config.json 파일에서 자격 증명을 수동으로 설정할 수 있습니다.
  • 이제 이미지를 빌드 할 수 있으며 레지스트리에서 기본 이미지를 가져와야합니다.