web-dev-qa-db-ja.com

Dockerは「deb.debian.org」を解決できませんでした

私はいくつかの実験のためにDockerでコンテナを構築しようとしていました。これが私のDockerfileです。

FROM debian

RUN mkdir -p /var/run/sshd

RUN apt-get update
RUN apt-get install -y openssh-server

RUN apt-get install -y Sudo

RUN echo AddressFamily inet >> /etc/ssh/sshd_config

ARG username=Rivers
ARG userpasswd=perfectXJ2017

RUN useradd -ms /bin/bash $username && (echo $username:$userpasswd | chpasswd)

RUN adduser $username Sudo

CMD /usr/sbin/sshd -D

コマンドSudo docker build -t ics-image .を使用してイメージをビルドしようとしました。

しかし、その後、いくつかのエラーメッセージが表示され、プロセス全体が停止しました。ここにエラーメッセージがあります。

Sending build context to Docker daemon  2.048kB
Step 1/11 : FROM debian
 ---> 8626492fecd3
Step 2/11 : RUN mkdir -p /var/run/sshd
 ---> Running in 1e1f2dbbe5ca
Removing intermediate container 1e1f2dbbe5ca
 ---> dd4bec2f81d4
Step 3/11 : RUN apt-get update
 ---> Running in 022301215bfb
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Get:2 http://security.debian.org/debian-security stretch/updates/main AMD64 Packages [450 kB]
Err:3 http://deb.debian.org/debian stretch InRelease
  Could not resolve 'deb.debian.org'
Err:4 http://deb.debian.org/debian stretch-updates InRelease
  Could not resolve 'deb.debian.org'
Fetched 544 kB in 20s (26.9 kB/s)
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Could not resolve 'deb.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease  Could not resolve 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Removing intermediate container 022301215bfb
 ---> 054d32710b62
Step 4/11 : RUN apt-get install -y openssh-server
 ---> Running in 802d2fa37b8d
Reading package lists...
Building dependency tree...
Reading state information...
Package openssh-server is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'openssh-server' has no installation candidate
The command '/bin/sh -c apt-get install -y openssh-server' returned a non-zero code: 100

私はこのすべてをUbuntu 18.04で行いました。これがなぜ起こったのか、そしてこの問題をどのように解決するのか理解できません。誰か助けてもらえますか?

5
Rivers Shall

これは、Dockerがホストを正しく解決できないようです。 dockerがDNSを解決できるかどうかを確認するには、次のコマンドを実行します。一部の環境では、ネットワーク管理者が8.8.8.8をブロックする場合があります。 8.8.8.8がブロックされている場合は、ローカルDNS IPを使用します。

Sudo docker run busybox nslookup google.com

Sudo docker run --dns 8.8.8.8 busybox nslookup google.com

最初のコマンドが機能せず、2番目のコマンドが正常に機能する場合は、DNS解決の問題であることを示しています。 /etc/docker/daemon.jsonを編集して、上記のコマンドで機能したDNSサーバーIPを追加します。

{
    "dns": ["8.8.8.8"]
}

以下のコマンドを使用して、変更を有効にするためにdockerサービスを再起動します。

service docker restart

以下のコマンドを実行して、DockerがDNS名を解決できることを確認します。

Sudo docker run busybox nslookup google.com
1
Rb_newsletter

Dockerを実行しているホストからdeb.debian.orgを解決できるかどうかを最初に確認する必要があります。 nslookup deb.debian.orgまたはDig deb.debian.orgで確認できます。

ホストからを解決できない場合は、nameserver 8.8.8.8/etc/resolve.confファイルに追加してから、再試行してください。 Dockerは/etc/resolve.confファイルからネームサーバーをコピーします。

または、ファイル/etc/docker/daemon.jsonを作成してネームサーバーを設定できます

{
    "dns": ["8.8.8.8"]
}

次に、Dockerサービスを再起動します

servide docker restart
1
Harshad Yeola

ソケットでアクセス許可エラーが発生し、DNSが機能しませんでした。 Sudo apt-get purge --auto-remove apparmorこの記事から( https://forums.docker.com/t/can-not-stop-docker-container-permission-denied-error/41142/ )ようやく解決されました。 Ubuntu-バスター。

0
marcusb