Help us understand the problem. What is going on with this article?

Windows10 × Docker for Windows トラブルシューティング

More than 3 years have passed since last update.

いくつか失敗するポイントがあったので、問題発生~解決の都度追記していきます。

前提環境

# Type Software
1 ClientOS Microsoft Windows 10 Enterprise 10.0.14393 ビルド 14393
2 Container Host Docker for Windows

トラブルシューティング

問題.1 メモリ不足でDockerが起動しない

■現象

Dockerを起動するとエラーが発生する。

image

タスクアイコンも真っ赤。

image

■原因

エラーの内容通り、設定しているメモリが確保できていない。

■対処方法

  • タスクアイコンで右クリック。
  • コンテキストメニューから Settings... を選択。

image

  • Advanced を選択。
  • Memory: 1024 MB に設定。
  • Apply ボタンを選択。

image

  • Docker is running となればOK。

image

問題.2 ホストとコンテナのボリューム共有に失敗する

■現象

  • タスクアイコンで右クリック。
  • コンテキストメニューから Settings... を選択。

image

  • Shared Drives を選択。
  • C Drive のチェックをON。
  • Apply ボタンを選択。

image

エラーが発生する。

image

■原因

どうやら、使用しているセキュリティソフト Kaspersky(個人向け) が、ブロックしているとのこと。

■対処方法

  • タスクアイコンで右クリック。
  • コンテキストメニューから 設定 を選択。

image

  • 設定ボタン(歯車アイコン)を選択。

image

  • プロテクション を選択。
  • ファイアウォール を選択。

image

  • ネットワーク を選択。

image

  • DockerNAT を選択。
  • 編集 ボタンを選択。

image

  • ネットワーク種別: 許可するネットワーク を選択。
  • 保存 ボタンを選択。

image

  • Dockerの設定をリトライしたところ、エラーは発生せずに完了しました。
  • Docker is running となればOK。

image

実際にファイル共有できているのか確認

Nginx のコンテナを動かして、アクセスログを共有してみます。

powershell
# docker-compose 試運転用のリポジトリを git clone 
git clone https://github.com/busonx/pilot-docker-compose.git
cd .\pilot-docker-compose\v2\nginx\
docker-compose up -d

image

  • 正常に動作しましたので、コンテナを停止します。
powershell
docker-compose stop
  • アクセスログが残ったのか確認します。(私が使用しているのは Visual Studio Code なので、 code コマンドでファイルを開いています。)
powershell
code .\datastore\webserver\nginx\access.log
  • アクセスログファイル access.log があること、
  • アクセスログが残っていることが確認できました。
access.log
172.18.0.1 - - [02/Apr/2017:03:19:37 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"

問題.3 コンテナを取得しようとするとタイムアウト

■現象

docker-compose でコンテナを立ち上げようとすると、タイムアウトになる。

powershell
PS C:\> docker-compose up -d
result
Building pg_db
Step 1/1 : FROM postgres:9.6.2
ERROR: Service 'pg_db' failed to build: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

■原因

プロキシの設定漏れ。(会社あるあるですね :sweat:

■対処方法

  • タスクアイコンで右クリック。
  • コンテキストメニューから Settings... を選択。

image

  • Proxies を選択。
  • Manual proxy configuration を選択。
  • Web Server (HTTP): http://proxyserver.jp:8080 を設定。
    • proxyserver.jp: プロキシサーバ名
    • 8080: プロキシのポート
  • Bypass for these hosts and domains: (use commas to separate entries): localhost, 127.0.0.1 を設定。
    • 除外設定です。適宜設定してください。
  • Apply ボタンを選択。

image

takeru08ma
製造業の中でソフトウェアを扱う仕事を微妙にやっていたエンジニア(もどき) / 興味: コードを書くエンジニアのお仕事, 育児 / ide: IntelliJ IDEA / Node.js / 製造業 / IoTリサーチャー / 一児の父
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした