2014年8月22日金曜日

docker でハマったところ

今年に入って賑やかになってきたDocker界隈ですが、そろそろこのビッグウェーブに乗るしかなくなってきたため、入門してみました。

その上で、ハマった部分などを整理してみようと思います。

 

DNSの設定

ubuntuのコンテナを作成するため、下記のようなDockerfileを作成。

 

単純にパッケージの最新化を行っているだけなので、失敗するはずが無いと思っていたら、apt-get updateを発行している部分で下記のようなエラーが発生 

Err http://archive.ubuntu.com trusty InRelease
Err http://archive.ubuntu.com trusty-updates InRelease
Err http://archive.ubuntu.com trusty-security InRelease
Err http://archive.ubuntu.com trusty Release.gpg Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-updates Release.gpg Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-security Release.gpg Could not resolve 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

 

どうも名前解決できていないようなのですが、ローカルのUbuntuで試してみても大丈夫・・・。 はてなんぞや?と悩んでいたら、全く同じエラーが出ている方がいました。

Docker on Ubuntu 14.04 - Could not resolve 'archive.ubuntu.com'

 

要するに、/etc/default/docker.ioの

#DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4"

のコメントアウトを外して、DNSサーバを明示的に指定しなさいってことでした。

ホストのDNS設定を勝手に使ってくれるものだと思っていたので、長いことハマってました・・・。

 

パッケージ名

Ubuntuの標準リポジトリでは、すでにdockerという別のパッケージが存在している。

docker - System tray for KDE3/GNOME2 docklet applications

ということで、ここでいうところのdockerはdocker.ioというパッケージ名となっております。

なにも調べないままに、

sudo apt-get install -y docker

としてしまい、X関連のパッケージがインストールされてしまいビビるという事案が発生しました。

 

 

こうやって見てみるとDNSサーバの設定で長々とはまっていただけで、いうほどハマりどころはなかったですね・・・。

とりあえず簡単そうなところで、Growthforecast のDockerfileを作ってみました。

golaboratory/docker-growthforecast

 

これから開発で使用するサーバ系をひと通りdocker上に乗っけてみようとしているので、随時増やしていこうかと考えております。