18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

docker build でyumに失敗した場合の対処

Last updated at Posted at 2016-03-06

次のような条件で同じような失敗をしている人のための備忘録です。
・dockerfile 内でyumの記述をしている。
・Dockerホスト(CentOS7)上では名前解決が正しく行われる。
・Dockerホスト(CentOS7)上ではIPv6を止めている。
・firewalld は、53, 80を開放している。

・・・にも関わらず、次のエラーが発生する人。

# docker build -t ****:** ./
   ・
   ・
(省略)
   ・
   ・
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won't use it by default. Yum will then
        just ignore the repository until you permanently enable it again or use
        --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>

     4. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/7/x86_64
The command '/bin/sh -c yum -y install gcc gcc-c++ wget

■ 解決方法

  • 1.docker起動ファイルを編集。DNSサーバの指定を行います。ここでは、8.8.8.8を指定しています。

# vi /usr/lib/systemd/system/docker.service
(変更前):ExecStart=/usr/bin/docker daemon -H fd://
     ↓    ↓
(変更後):ExecStart=/usr/bin/docker daemon -H fd:// -dns=8.8.8.8

2.Dockerデーモンのリロードと再起動

# systemctl daemon-reload
# systemctl restart docker

これで解決です。 ps でdocker の起動オプションにdnsも追加され、エラーも解決です。

■ 解決方法(その2)

  • 1.firewalld の再起動

    # systemctl restart firewalld
  • 2. Dockerデーモンの再起動

    # systemctl restart docker
18
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?