退役SEのつれづれ日記

定年退役SEが、つれづれなる想いをしたためています。
(旧名:『システムノヲニワソト』)

[docker]さくらVPS:コンテナ内でyumコマンドがエラーに!

2015-08-16 | サーバ設定(redmine,zabbix
(追記始まり)
2018年5月現在、この方法は有効です。
(追記終わり)

さくらVPSサービスで構築中のdockerコンテナ内でyumコマンドを実行するもののエラーとなる。AWSで作成したコンテはでは発生しておらず、謎。。
例えば、dockerfileで「yum」の実行を記述すると、こんなエラーが・・・
Step 5 : RUN yum update -y
---> Running in 466a7600aef9
Loaded plugins: fastestmirror
Setting up Update Process
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
time="2015-08-14T21:57:57+09:00" level=info msg="The command [/bin/sh -c yum update -y] returned a non-zero code: 1"
Fri Aug 14 21:57:57 JST 2015

いろいろと検索すると、対応策は
(1)リポジトリの変更(さくらVPSの場合、ftp.riken.jpにする)
(2)DNSの設定を追加
(3)ipv6設定を無効にする
の3種類らしい。
コンテナ内の設定を書き換えるようにdockerfileに各種設定ファイルのコピーを仕込んで
対応するものの、(1)(2)(3)の策とも効果なし。
(参考)
Qiita:さくらVPSのyum update実行時に出るエラーの対処法
   http://qiita.com/asukiaaa/items/f92bfa7ba6fba2aeb7ed
yum updateに失敗するようになった。原因は?
   http://blogs.yahoo.co.jp/beachinside/11233943.html
yum Error: Cannot find a valid baseurl for repo: baseの対処法
   http://curtaincall.weblike.jp/blog/?p=561
vagrant環境下で [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host エラー
   http://blog.at-human.com/2015/02/08/vagrant%E7%92%B0%E5%A2%83%E4%B8%8B%E3%81%A7-errno-14-pycurl-error-6-couldnt-resolve-host-%E3%82%A8%E3%83%A9%E3%83%BC/
CentOS 6.x で ipv6 を無効化する
   http://www.1x1.jp/blog/2013/03/disable_ipv6_on_centos6.html
コードジガー:CentOS 6.x系の初期設定
   http://takaya1219.hatenablog.com/entry/2012/07/18/020444

ふと、考えた。ホスト側の設定で(3)のipv6を無効にしたらどうなるだろうか?
コマンドで設定し、rebootしてみる。
<リブート前>
# ip a
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet XXY.XXX.XXX.XXX/23 brd YYY.YYY.YYY.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 XXXX:YYYY:ZZZZ:XXXX:XXY.XXX.XXX.XXX/64 scope global
valid_lft forever preferred_lft forever
inet6 0080::0000:000:0000:00/64 scope link
valid_lft forever preferred_lft forever

<リブート後>
# ip a
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet XXY.XXX.XXX.XXX/23 brd YYY.YYY.YYY.255 scope global eth0
valid_lft forever preferred_lft forever

ちゃんと、ipv6設定は無効化されていました。

(参考)
俺的備忘録 ~なんかいろいろ~:CentOS 7でIPv6を無効化する
   http://orebibou.com/2014/12/centos-7%E3%81%A7ipv6%E3%82%92%E7%84%A1%E5%8A%B9%E5%8C%96%E3%81%99%E3%82%8B/

この後dcokerfileを使って作業してみると、AWSと同様に問題無くyumができた・・(ホッ)
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« [docker]セミナーに参加しま... | トップ | [docker]ホストのディレクト... »

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。