Spark Kubernetees building docker image fails - docker

I'm trying out Spark on Kubernetes. Just downloaded Spark 2.4.3 on an EC2 instance in my VPC. I have setup my proxy in /etc/sysconfig/docker and able to import and run docker images from docker hub.
Command: bin/docker-image-tool.sh -t k8s-spark-2.4.3 build
Sending build context to Docker daemon 261.4MB
Step 1/15 : FROM openjdk:8-alpine
---> a3562aa0b991
Step 2/15 : ARG spark_jars=jars
---> Using cache
---> 2f9744e85911
Step 3/15 : ARG img_path=kubernetes/dockerfiles
---> Using cache
---> ba02760dc2df
Step 4/15 : ARG k8s_tests=kubernetes/tests
---> Using cache
---> a630900ca584
Step 5/15 : RUN set -ex && apk upgrade --no-cache && apk add --no-cache bash tini libc6-compat linux-pam nss && mkdir -p /opt/spark && mkdir -p /opt/spark/work-dir && touch /opt/spark/RELEASE && rm /bin/sh && ln -sv /bin/bash /bin/sh && echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && chgrp root /etc/passwd && chmod ug+rw /etc/passwd
---> Running in 6b2fe7f7fcc6
+ apk upgrade --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz: network error (check Internet connection and firewall)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz: network error (check Internet connection and firewall)
+ apk add --no-cache bash tini libc6-compat linux-pam nss
OK: 103 MiB in 54 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz: network error (check Internet connec tion and firewall)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz: network error (check Internet connection and firewall)
bash (missing):
required by: world[bash]
libc6-compat (missing):
required by: world[libc6-compat]
linux-pam (missing):
required by: world[linux-pam]
tini (missing):
required by: world[tini]
ERROR: unsatisfiable constraints:
The command '/bin/sh -c set -ex && apk upgrade --no-cache && apk add --no-cache bash tini libc6-compat linux-pam nss && mkdir -p /opt/spark && mkdir -p /opt/spark/work-dir && touch /opt/spark/RELEASE && rm /bin/sh && ln -sv /bin/bash /bin/sh && echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && chgrp root /etc/passwd && chmod ug+rw /etc/passwd' returned a non-zero code: 4
Sending build context to Docker daemon 261.4MB
Step 1/9 : ARG base_img
Step 2/9 : FROM $base_img
pull access denied for spark, repository does not exist or may require 'docker login'
Sending build context to Docker daemon 261.4MB
Step 1/9 : ARG base_img
Step 2/9 : FROM $base_img
pull access denied for spark, repository does not exist or may require 'docker login'
Any idea how to fix this?
I tried running this after 'docker login' as well. Result is same.

Seems like your EC2 instance has no conection with internet
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz:
network error (check Internet connection and firewall)

I had this exact same problem from within an Ubuntu 16.04 VM running on my laptop.
I was able to download the packages with curl and to visit the alpine repository directories using a web browser, so I know the issue was not the network connection.
Believe it or not, the solution was to restart the docker service running within the VM.
I found this as a suggested solution when searching for one of the apline package loading errors and it worked!

Related

Error building new workspace using docker-compose when running "apt-get update -yqq"

I am setting up a new project using Laradock in Ubuntu 18.04. I verified that docker-compose is correctly installed and that the images were downloaded correctly. When running
$ sudo docker-compose up -d mysql nginx phpmyadmin redis php-worker
It returns the following error:
+ apt-get update -yqq
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-backports/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/xenial-security/InRelease Temporary failure resolving 'security.ubuntu.com'
W: Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/dists/xenial/InRelease Temporary failure resolving 'ppa.launchpad.net'
W: Some index files failed to download. They have been ignored, or old ones used instead.
After running the command 'docker-compose up':
path_to_laradock/laradock$ sudo docker-compose up -d mysql nginx phpmyadmin redis php-worker
Building workspace
Step 1/251 : ARG LARADOCK_PHP_VERSION
Step 2/251 : FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION}
---> 9e3231c96fa9
Step 3/251 : LABEL maintainer="Mahmoud Zalt <mahmoud#zalt.me>"
---> Using cache
---> 2a0571fff132
Step 4/251 : ARG LARADOCK_PHP_VERSION
---> Using cache
---> fd7c28e61b6c
Step 5/251 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> 8dfd11e8a07b
Step 6/251 : ARG CHANGE_SOURCE=false
---> Using cache
---> f72c34b26b28
Step 7/251 : RUN if [ ${CHANGE_SOURCE} = true ]; then sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list && sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list && sed -i 's/security-cdn.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list ;fi
---> Using cache
---> c8325ad16886
Step 8/251 : USER root
---> Using cache
---> c36347410846
Step 9/251 : ARG PUID=1000
---> Using cache
---> 37bb8c1e61cf
Step 10/251 : ENV PUID ${PUID}
---> Using cache
---> b6076ea8d56f
Step 11/251 : ARG PGID=1000
---> Using cache
---> 05e5eb9ee8a7
Step 12/251 : ENV PGID ${PGID}
---> Using cache
---> e0987ed2353e
Step 13/251 : ARG CHANGE_SOURCE=false
---> Using cache
---> 4e13d59b9edc
Step 14/251 : ARG UBUNTU_SOURCE
---> Using cache
---> 5dfae87036c0
Step 15/251 : COPY ./sources.sh /tmp/sources.sh
---> Using cache
---> 077233c36a6e
Step 16/251 : RUN if [ ${CHANGE_SOURCE} = true ]; then /bin/sh -c /tmp/sources.sh && rm -rf /tmp/sources.sh ;fi
---> Using cache
---> e58f5c8ce0f8
Step 17/251 : RUN set -xe; apt-get update -yqq && pecl channel-update pecl.php.net && groupadd -g ${PGID} laradock && useradd -u ${PUID} -g laradock -m laradock -G docker_env && usermod -p "*" laradock -s /bin/bash && apt-get install -yqq apt-utils libzip-dev zip unzip php${LARADOCK_PHP_VERSION}-zip nasm && php -m | grep -q 'zip'
---> Running in df3b3e0be1e9
+ apt-get update -yqq
What configuration file could be causing the error?
Thanks!
It was a problem with the DNS.
After modifying 'docker' file in '/etc/default/' I changed the default DNS. I restored the default values and everything worked normally again.
It looks like this:
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

GitLab pipeline Docker build gets stuck on apk

Trying to make a simple GitLab pipeline that builds a Docker image for Alpine Linux + Openshift CLI.
This is the code:
FROM frolvlad/alpine-glibc:latest
MAINTAINER Daniel Widerin <daniel#widerin.net>
ENV OC_VERSION=v3.11.0 \
OC_TAG_SHA=0cbc58b \
BUILD_DEPS='tar gzip' \
RUN_DEPS='curl ca-certificates gettext'
RUN apk --no-cache add $BUILD_DEPS $RUN_DEPS && \
curl -sLo /tmp/oc.tar.gz https://github.com/openshift/origin/releases/download/${OC_VERSION}/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit.tar.gz && \
tar xzvf /tmp/oc.tar.gz -C /tmp/ && \
mv /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit/oc /usr/local/bin/ && \
rm -rf /tmp/oc.tar.gz /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit && \
apk del $BUILD_DEPS
CMD ["/bin/sh"]
Now for some reason when running the pipeline it gets stuck on the curl part that downloads the openshift archive.
Status: Downloaded newer image for frolvlad/alpine-glibc:latest
---> 38dd85a430e8
Step 2/5 : MAINTAINER Daniel Widerin <daniel#widerin.net>
---> Running in bdacc7e92e79
Removing intermediate container bdacc7e92e79
---> c56da0a68f7f
Step 3/5 : ENV OC_VERSION=v3.11.0 OC_TAG_SHA=0cbc58b BUILD_DEPS='tar gzip' RUN_DEPS='curl ca-certificates gettext'
---> Running in cb1e6cdb39ca
Removing intermediate container cb1e6cdb39ca
---> 727952120e67
Step 4/5 : RUN apk --no-cache add $BUILD_DEPS $RUN_DEPS && curl -sLo /tmp/oc.tar.gz https://github.com/openshift/origin/releases/download/${OC_VERSION}/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit.tar.gz && tar xzvf /tmp/oc.tar.gz -C /tmp/ && mv /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit/oc /usr/local/bin/ && rm -rf /tmp/oc.tar.gz /tmp/openshift-origin-client-tools-${OC_VERSION}-${OC_TAG_SHA}-linux-64bit && apk del $BUILD_DEPS
---> Running in ef344ef4a96b
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
It stays like this for an hour until the pipeline times out.
Tried this same Dockerfile manually and it works fine.
How can I diagnose this issue? How can I find any logs for this?
Found that this issue is related to Alpine image having networking issues when run in Docker-in-Docker configuration on Kubernetes/OpenShift based runner. Adding --network host to Docker build helps to fix this issue.
Docker build --network host .
Related GitHub issue: github.com/gliderlabs/docker-alpine/issues/307

Dockerfile is not running the desired shell script

I am trying configure and run a certain program using Docker. I am a beginner in Docker, so beware of newbie mistakes!
FROM ubuntu:16.04
# create non-root user
ENV USERNAME ros
RUN adduser --ingroup sudo --disabled-password --gecos "" --shell /bin/bash --home /home/$USERNAME $USERNAME
RUN bash -c 'echo $USERNAME:ros | chpasswd'
ENV HOME /home/$USERNAME
RUN apt-get update && apt-get install --assume-yes wget sudo && \
wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh && \
chmod 755 ./install_ros_kinetic.sh && \
bash ./install_ros_kinetic.sh
RUN apt-get install --assume-yes ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers
RUN cd /home/$USERNAME/catkin_ws/src/
RUN git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
RUN git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
USER $USERNAME
WORKDIR /home/$USERNAME
# add catkin env
RUN echo 'source /opt/ros/kinetic/setup.bash' >> /home/$USERNAME/.bashrc
RUN echo 'source /home/$USERNAME/catkin_ws/devel/setup.bash' >> /home/$USERNAME/.bashrc
RUN /bin/bash -c "source /home/ros/.bashrc && cd /home/$USERNAME/catkin_ws && catkin_make"
Gave the following output:
~/m/rosdocker docker build --rm -f "Dockerfile" -t rosdocker:latest .
Sending build context to Docker daemon 5.632kB
Step 1/15 : FROM ubuntu:16.04
---> b0ef3016420a
Step 2/15 : ENV USERNAME ros
---> Using cache
---> 25bf14574e2b
Step 3/15 : RUN adduser --ingroup sudo --disabled-password --gecos "" --shell /bin/bash --home /home/$USERNAME $USERNAME
---> Using cache
---> 3a2787196745
Step 4/15 : RUN bash -c 'echo $USERNAME:ros | chpasswd'
---> Using cache
---> fa4bc1d220a8
Step 5/15 : ENV HOME /home/$USERNAME
---> Using cache
---> f987768fa3b1
Step 6/15 : RUN apt-get update && apt-get install --assume-yes wget sudo && wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh && chmod 755 ./install_ros_kinetic.sh && bash ./install_ros_kinetic.sh
---> Using cache
---> 9c26b8318f2e
Step 7/15 : RUN apt-get install --assume-yes ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers
---> Using cache
---> 4b4c0abace7f
Step 8/15 : RUN cd /home/$USERNAME/catkin_ws/src/
---> Using cache
---> fb87caedbef8
Step 9/15 : RUN git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
---> Using cache
---> d2d7f198e018
Step 10/15 : RUN git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
---> Using cache
---> 42ddcbbc19e1
Step 11/15 : USER $USERNAME
---> Using cache
---> 4526fd7b5d75
Step 12/15 : WORKDIR /home/$USERNAME
---> Using cache
---> 0543c327b994
Step 13/15 : RUN echo 'source /opt/ros/kinetic/setup.bash' >> /home/$USERNAME/.bashrc
---> Using cache
---> dff40263114a
Step 14/15 : RUN echo 'source /home/$USERNAME/catkin_ws/devel/setup.bash' >> /home/$USERNAME/.bashrc
---> Using cache
---> fff611e9d9db
Step 15/15 : RUN /bin/bash -c "source /home/ros/.bashrc && cd /home/$USERNAME/catkin_ws && catkin_make"
---> Running in 7f26a34419a3
/bin/bash: catkin_make: command not found
The command '/bin/sh -c /bin/bash -c "source /home/ros/.bashrc && cd /home/$USERNAME/catkin_ws && catkin_make"' returned a non-zero code: 127
~/m/rosdocker
I need it to run catkin_make (which is on the path set up by .bashrc)
Exit code 127 from shell commands means "command not found". Is .bashrc executable? Normally it is not, probably you want to source it?
source ./home/$USERNAME/.bashrc
As Dan Farrel pointed out in his comment, sourcing the file in a RUN command will only have effect within that shell.
To source .bashrc during the build
If you want it to have effect for later commands in the build you need to run them all in the same RUN statement. In the below .bashrcis sourced in the same shell as catkin_make is run.
RUN . /home/ros/.bashrc && \
cd /home/$USERNAME/catkin_ws && \
catkin_make
To source the .bashrc file when the container starts
What should happen when the container is run using docker runis specified using the ENTRYPOINTstatement. If you just want a plain bash prompt, specify /bin/bash. The shell will be run with the user specified in the USER statement.
So in summary if you add the following to the end of your Dockerfile
USER ros
ENTRYPOINT /bin/bash
When someone runs the container using docker run -it <containerName> they will land in a bash shell as the user ros. Bash will automatically source the /home/ros/.bashrc file and all definitions inside will be available in the shell. (Your RUN statement containing the .bashrc file canbe removed

building inside Docker container

In the simple case of running Gitea from inside a Docker container, the current Dockerfile assumes you have already compiled Gitea and have it available to create the image.
In my case, I do not have Gitea currently installed on my machine. I am on Mac OSX and my thought was that if I build on this machine, but the Gitea Dockerfile uses Alpine Linux as its base image, there would be some conflict in this case? Can someone clarify if that would be an issue?
The workaround I thought of was to build Gitea directly inside the container with Alpine Linux. The other possibility would be for me to compile on Mac OSX and then change the base image I suppose.
Do these two workarounds make sense and which one would be preferable? Does the binary that we use in the image also have to be compatible with the base image? I think so, but welcome your inputs as well.
Edit: I've tried compiling inside the container, but ran into a problem. From the DockerHub available Dockerfile is below:
FROM alpine:3.7
LABEL maintainer="The Gitea Authors"
EXPOSE 22 3000
RUN apk --no-cache add \
su-exec \
ca-certificates \
sqlite \
bash \
git \
linux-pam \
s6 \
curl \
openssh \
gettext \
tzdata \
make
RUN addgroup \
-S -g 1000 \
git && \
adduser \
-S -H -D \
-h /data/git \
-s /bin/bash \
-u 1000 \
-G git \
git && \
echo "git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" |
chpasswd
# Dockerfile assumes Gitea is already up and running
# In this case, copy the source to container and Compile Gitea in Alpine
Environment
COPY gitea-master.zip /
RUN unzip gitea-master.zip
RUN cd gitea-master
RUN make generate all
You can see I've added instructions to copy gitea into the container, unzip, cd into the directory and the build, but I get the following output:
Step 1/17 : FROM alpine:3.7
---> 3fd9065eaf02
Step 2/17 : LABEL maintainer="The Gitea Authors"
---> Using cache
---> b6bb053b3e89
Step 3/17 : EXPOSE 22 3000
---> Using cache
---> ade88a29df64
Step 4/17 : RUN apk --no-cache add su-exec ca-certificates
sqlite bash git linux-pam s6 curl openssh
gettext tzdata make
---> Using cache
---> 460a5562c60f
Step 5/17 : RUN addgroup -S -g 1000 git && adduser -S -H -D
-h /data/git -s /bin/bash -u 1000 -G git git && echo
"git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" | chpasswd
---> Using cache
---> 07ff1f0b2d3e
Step 6/17 : COPY gitea-master.zip /
---> Using cache
---> 3ad1e3177659
Step 7/17 : RUN unzip gitea-master.zip
---> Using cache
---> 61a2beb19e1e
Step 8/17 : RUN cd gitea-master
---> Using cache
---> 6985914927b9
Step 9/17 : RUN make generate all
---> Running in 3e603f88c302
make: *** No rule to make target 'generate'. Stop.
The command '/bin/sh -c make generate all' returned a non-zero code: 2
The Makefile clearly shows that those targets are available however, but this has got me a bit stumped. Any suggestions ?
In order to build Go binaries (I checked out gitea and it seems to be built with Go) for Linux on OSX you need to provide have env variable GOOS set to linux. You can try adding GOOS=linux in front of this line in gitea makefile: https://github.com/go-gitea/gitea/blob/master/Makefile#L221 , or simply run GOOS=linux make generate build . This should create a go binary which you can use in Docker image.
Edit in response to edit: possibly you unzipped the gitea-master into a deeper dir, check output of ls while building image to see if Makefile is available to you (it seems like there is no Makefile in your pwd while building image).

Docker failing to add remote file with 'too many redirects'

I'm trying to build the following Dockerfile:
FROM ubuntu-debootstrap:trusty
ENV CONFD_VERSION 0.6.3
ENV CONFD_INTERVAL 30
ENV CONFD_NODE 172.17.42.1:4001
ENV CONFD_BACKEND etcd
RUN apt-get update -q \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y -q nginx \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists
ADD https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64 /usr/local/bin/confd
RUN chmod +x /usr/local/bin/confd /usr/local/bin/confd
EXPOSE 80
CMD confd -verbose -interval $CONFD_INTERVAL -backend $CONFD_BACKEND -node $CONFD_NODE
But it fails trying to fetch the remote file with a 'too many redirects' error:
$ docker build -t confdrouter .
Sending build context to Docker daemon 16.9 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu-debootstrap:trusty
---> 21530629f1e1
Step 1 : ENV CONFD_VERSION 0.6.3
---> Using cache
---> 070ff91dc728
Step 2 : ENV CONFD_INTERVAL 30
---> Using cache
---> 2d30a2f30f85
Step 3 : ENV CONFD_NODE 172.17.42.1:4001
---> Using cache
---> 96915c53a9aa
Step 4 : ENV CONFD_BACKEND etcd
---> Using cache
---> 5d770c929056
Step 5 : RUN apt-get update -q && DEBIAN_FRONTEND=noninteractive apt-get install -y -q nginx && apt-get clean && rm -rf /var/lib/apt/lists
---> Using cache
---> 5c2465522a1c
Step 6 : ADD https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64 /usr/local/bin/confd
2014/11/07 11:31:57 Get https://s3.amazonaws.com/github-cloud/releases/13234395/5e2257d4-4f46-11e4-92c7-d029c6449976.3-linux-amd64?response-content-disposition=attachment%3B%20filename%3Dconfd-0.6.3-linux-amd64&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1415381577&Signature=WWdGHk8K3%2BIQyl7Cl4UcBN8aDQM%3D: dial tcp: lookup s3.amazonaws.com on [10.0.2.3]:53: too many redirects
Running boot2docker 1.3.1 on Mac OS X 10.10. Any idea what is going on here?
Looks like the error is coming from DNS, and the DNS server is at 10.0.2.3. This is the address that VirtualBox maps for DNS.
Very similar question at How to fix Docker's "Error pulling image...too many redirects" failures while pulling images from registry?, with advice to use Google's DNS at 8.8.8.8, which is generally excellent.

Resources