2017-04-01 1 views
2

Docker 파일을 기반으로 Docker 이미지를 작성하기 위해 Docker 컨테이너의 Jenkins를 구성하는 방법을 배우려고합니다.Jenkins의 빌드 도커 이미지 (Docker 이미지) - Cloud Docker 에이전트

처음에는 DockerToolbox를 설치했습니다. (OS Windows 7 Home)

그런 다음 Dockerhub에서 최신 Jenkins 이미지를 가져 와서 컨테이너를 실행하고 관리자로 로그인했습니다.

이 자습서를 기반으로 : https://www.katacoda.com/courses/jenkins/build-docker-images 나는 Docker 호스트/데몬과 통신하도록 플러그인을 구성하려고합니다. (3 단계)

(Jenkins/configure/Cloud 섹션에서) Name과 Docker-Url을 채운 다음 테스트 연결을 작성해야합니다.

Docker 터미널에서 docker-machine config을 입력하여 URL을 가져 왔습니다.

는 불행하게도 테스트 연결 후 나는 예외 아래 얻을 :

shaded.org.apache.http.client.ClientProtocolException 
javax.ws.rs.ProcessingException: shaded.org.apache.http.client.ClientProtocolException 
    at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:481) 
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252) 
    at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:701) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) 
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:697) 
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:420) 
    at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:316) 
    at com.github.dockerjava.jaxrs.VersionCmdExec.execute(VersionCmdExec.java:26) 
    at com.github.dockerjava.jaxrs.VersionCmdExec.execute(VersionCmdExec.java:13) 
    at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23) 
    at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35) 
    at com.nirima.jenkins.plugins.docker.DockerCloud$DescriptorImpl.doTestConnection(DockerCloud.java:698) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335) 
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175) 
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108) 
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124) 
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) 
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236) 
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) 
    at org.kohsuke.stapler.Stapler.service(Stapler.java:238) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) 
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) 
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) 
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.Server.handle(Server.java:499) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) 
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: shaded.org.apache.http.client.ClientProtocolException 
    at shaded.org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186) 
    at shaded.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) 
    at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:435) 
    ... 82 more 
Caused by: shaded.org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response 
    at shaded.org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:151) 
    at shaded.org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) 
    at shaded.org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) 
    at shaded.org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) 
    at shaded.org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167) 
    at shaded.org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) 
    at shaded.org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) 
    at shaded.org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271) 
    at shaded.org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 
    at shaded.org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) 
    at shaded.org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 
    at shaded.org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 

내가 모르는 뭔가가 혹은 더 효율적인 방법이 있어요 있는지 모르겠어요.

힌트를 미리 보내 주셔서 감사합니다.

클라우드 설정 :

cloud settings screenshot

+0

을 통해 이루어집니다의 부두 노동자 데몬 설정을 수정해야? – shizhz

답변

0

는 Katacoda 시나리오를 다음과 같은 사항에 대해 감사드립니다. Docker Daemon이 HTTPS 포트에서 수신 대기하지 않는 것처럼 들립니다. docker-machine 명령은 Docker VM의 IP 주소를 반환하지만, 기본적으로 데몬은 HTTPS 포트에서 유닉스 소켓을 통해서만 수신 대기하지 않습니다.

동일한 컴퓨터를 사용하고 있으므로 IP/포트 대신 unix:///var/run/docker.sock 또는 /var/run/docker.sock과 같은 것을 사용해 볼 수 있습니다. 당신은 IP/포트를 사용하려면

, 당신은 boot2docker으로 이것은 당신이 도커 클라우드 섹션에 대한 귀하의 CONFIGS을 게시하시기 바랍니다 수 https://github.com/docker/machine/issues/3859

+0

Docker URL에 unix : ///var/run/docker.sock을 넣었을 때 예외가 발생했습니다 : 'org.newsclub.net.unix.AFUNIXSocketException : 허가가 거부되었습니다 (소켓 : /run/docker.sock) ' ssh/var/lib/boot2docker/profile의 도커 설정으로 구성 파일을 찾았습니다. [boot2docker config] (http://imgur.com/a/SIO9L) DOCKER_OPTS를 포함한 몇 가지 팁을 따르려고했으나하지 않았습니다. 나를 위해 일해. 나는이 문제에있어서 초보자이다. 아마도 그것은 좋은 방향이지만, 나는 어떤 세부 사항에주의를 기울이지 않는다. 허가를 얻기 위해해야 ​​할 일을보다 정확하게 지적 해 주시겠습니까? – David762

관련 문제