
そこで、2 つの Ubuntu AWS インスタンス (小さい t2.medium と大きい r3.large) をセットアップしました。t2.medium には Jenkins CI がインストールされ、r3.large には Docker エンジンがインストールされています。ここでの目的は、マスター (t2.medium) サーバーとスレーブ (r3.large) サーバーを用意することです。マスター サーバーは、ジョブの Docker コンテナを委任できます (必要に応じて Jenkins Docker コンテナを起動します)。
問題は、この件に関しては私の手に負えないということです。いろいろ調べているのですが、私がやることのほとんどがうまくいきません。
私の現在の状況は、上で述べたように、1つのインスタンスでJenkinsが正常に実行されており、もう1つのインスタンスでDockerエンジンが正常に実行されています。また、Dockerプラグインもインストールされています。ここを Jenkins にインストールし、そのページの指示に忠実に従いました。しかし、クラウドを追加して資格情報を追加すると、表示されるのは「-none-」だけです。ただし、同じ資格情報が下部に表示されます。
これの問題は、接続をテストするたびに次のエラーが発生することです。
shaded.org.apache.http.conn.HttpHostConnectException: Connect to 10.96.24.240:4243 [/10.96.24.240] failed: Connection refused
。
どなたか助けていただければ幸いです。1 週間以上もこの作業に取り組んでいますが、まったく理解できません。
編集: やり方が間違っている場合は、意図した設定を実現する方法について教えてください。
編集2: これら 2 つのインスタンス間のすべてのポートが開かれています。
セキュリティ グループのスクリーンショットは次のとおりです。
編集3: これが私のDockerイメージです:
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