
그래서 두 개의 Ubuntu AWS 인스턴스(소형 t2.medium 및 대형 r3.large)를 설정했습니다. t2.medium에는 Jenkins CI가 설치되어 있고 r3.large에는 도커 엔진이 설치되어 있습니다. 여기서의 의도는 마스터(t2.medium) 서버와 슬레이브(r3.large) 서버를 갖는 것입니다. 마스터 서버가 작업을 위해 도커 컨테이너를 위임할 수 있는 경우(필요에 따라 jenkins 도커 컨테이너를 가동)
내 문제는 내가 이것으로 너무 머리가 아프다는 것입니다. 나는 주변을 조사해 왔지만 내가 하는 거의 모든 일이 나에게 실패했습니다.
현재 상황은 다음과 같습니다. 위에서 언급한 것처럼 한 인스턴스에서는 jenkins가 성공적으로 실행되고 있고 다른 인스턴스에서는 docker 엔진이 성공적으로 실행되고 있습니다. 나는 또한 docker 플러그인을 발견했습니다.여기, 젠킨스에 설치되었으며 해당 페이지에 있는 지침을 철저하게 따랐습니다. 그러나 클라우드를 추가하고 자격 증명을 추가하면 "-none-"만 표시됩니다. 그러나 동일한 자격 증명이 하단에 표시됩니다.
문제는 연결을 테스트할 때마다 다음 오류가 발생한다는 것입니다.
shaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused
.
어떤 도움이라도 주시면 감사하겠습니다! 일주일 넘게 이 일을 하고 있어요! 그리고 나는 이것에 대해 머리를 감쌀 수 없습니다.
편집: 제가 잘못된 방향으로 가고 있다면 의도한 설정을 달성하는 방법을 안내해 주세요.
EDIT2: 두 인스턴스 사이에 모든 포트가 열립니다.
편집 3: 내 도커 이미지는 다음과 같습니다.
ubuntu@ip-10-96-24-240:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ubuntu@ip-10-96-24-240:~$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
jenkins-1 latest 9de6ee8eeebc 3 days ago 816.3 MB
ubuntu latest 8251da35e7a7 2 weeks ago 188.4 MB
jenkins latest 0c79d0a394dc 3 weeks ago 888 MB
evarga/jenkins-slave latest 8880612971b0 8 months ago 610.8 MB
답변1
좋아, 이것이 내 문제를 완전히 만족시키지는 못하지만 shaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused
문제에 대한 실행 가능한 대답입니다. 내 문제는 다음 코드를 추가하지 않았다는 것입니다 /etc/init/docker.conf
.
description "Docker daemon"
start on filesystem and started lxc-net
stop on runlevel [!2345]
respawn
script
/usr/bin/docker -H tcp://127.0.0.1:4243 -d
end script
나는 또한 클라이언트 버전을 넣었 1.8.1
습니다 . Docker Version
대신 현재 API 버전이어야 합니다 1.20
.
저와 같은 초보자에게 도움이 되길 바랍니다. :)
편집: 이 글을 게시한 이후 Docker conf 파일이 약간 변경되었습니다. 현재 docker.conf의 모습은 다음과 같습니다.
pre-start script
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
if grep -v '^#' /etc/fstab | grep -q cgroup \
|| [ ! -e /proc/cgroups ] \
|| [ ! -d /sys/fs/cgroup ]; then
exit 0
fi
if ! mountpoint -q /sys/fs/cgroup; then
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
fi
(
cd /sys/fs/cgroup
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
mkdir -p $sys
if ! mountpoint -q $sys; then
if ! mount -n -t cgroup -o $sys cgroup $sys; then
rmdir $sys || true
fi
fi
done
)
end script
script
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
DOCKER=/usr/bin/$UPSTART_JOB
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
exec "$DOCKER" daemon $DOCKER_OPTS
end script
# Don't emit "started" event until docker.sock is ready.
# See https://github.com/docker/docker/issues/6647
post-start script
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
while ! [ -e /var/run/docker.sock ]; do
initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
echo "Waiting for /var/run/docker.sock"
sleep 0.1
done
echo "/var/run/docker.sock is up"
fi
end script
이제 해야 할 -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
일은DOCKER_OPTS