質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

4回答

21108閲覧

win版dockerが非常に重い件について

dvyd32k

総合スコア14

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/04/17 05:18

編集2021/04/18 04:05

windows10に入れたdockerが重くて困っています。
※備考:Win10 Pro 64bit / corei5-9500 / 16GB

laravel6.x環境の構築でコンテナには下記を設定しています。

1)web:apache/php7.x ※xdebugなし 2)db:mysql5.x 3)s3:minio 4)sendgrid:simple-sendgrid-mock-server 5)adminer:standalone

vagrantやvirtualbox単体やxamppで同じような環境で構築した場合、
※備考:この3つは全部win版で大体同じくらいの速さです。(xampp > vb >= vagrant)

上記の3つと比べるとwin版dockerは5倍から10倍遅い感覚で、
開発環境として重過ぎて、とても使用する事が出来ない状態です。

win版dockerを軽くする為の何か特別な設定でもあるのでしょうか?
win版ではなくmacOSだと早いのでしょうか。

知見など有りましたらご教授頂けますと幸いです。
宜しくお願い致します。

■docker system info コマンド実行結果は下記のような状況となっております。

C:\xxxx\docker>docker system info Client: Debug Mode: false Plugins: scan: Docker Scan (Docker Inc., v0.3.4) Server: Containers: 15 Running: 5 Paused: 0 Stopped: 10 Images: 19 Server Version: 19.03.13 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 4.19.128-microsoft-standard Operating System: Docker Desktop OSType: linux Architecture: x86_64 CPUs: 6 Total Memory: 12.39GiB Name: docker-desktop ID: X47B:H62I:SOX7:QBAA:EKFH:TGKE:GDEF:FZKB:YKEK:2YQN:V2GC:SWNU Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Product License: Community Engine WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled C:\xxx\docker>

■wsl --list --verbose コマンド実行結果は下記の通りです。

C:\xxx\docker>wsl --list --verbose NAME STATE VERSION * docker-desktop-data Running 2 docker-desktop Running 2 C:\xxx\docker>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zembutsu

2021/04/17 05:41

「重い」といった動作を、具体的に書いていただければ、何かアドバイスができるかもしれません。また、システム上でメモリはどの程度ありますでしょうか。
zembutsu

2021/04/17 05:44

もしくは docker system info コマンドの実行結果も質問項目に入れて頂きますと、他の方からも状況がよく分かると思います。
dvyd32k

2021/04/17 11:33

ご回答頂きありがとうございます。 docker system info コマンドの実行結果を追記で記載致しました。
inductor

2021/04/17 11:37

1. WSL2は有効ですか? 2. タスクマネージャーで枯渇しているリソースはないですか? 3. 使っているCPUとメモリのスペックはわかりますか?
dvyd32k

2021/04/17 11:38

Win10 Pro 64bit corei5-9500 16GB になります。
inductor

2021/04/17 11:38

"Server Version: 19.03.13" だいぶ古いですね Docker Desktopではなさそう?
dvyd32k

2021/04/17 12:02 編集

ご回答ありがとうございます。 wsl --list --verbose コマンド実行結果を追記で記載致しました。 WSL2は有効でDockerDesktopになります。 認識に誤りが有りましたら済みません。
bsdfan

2021/04/18 23:12

wsl2から、Windowsのファイルシステム上のファイルへのアクセスは遅いと思います。 Windowsのディレクトリを、ボリュームマウントして、頻繁にアクセスするような使い方をしていますか?
dvyd32k

2021/04/19 02:48

ご回答ありがとうございます。 dockerの設定で、winPC側ローカルにあるlaravelソースと webコンテナ側の"/var/www/html"をマウントするようにしています。
guest

回答4

0

dockerの設定で、winPC側ローカルにあるlaravelソースと
webコンテナ側の"/var/www/html"をマウントするようにしています。

それだけで5~10倍も違うのかはわかりませんが、
wsl2から、Windowsのファイルシステム上のファイルへのアクセスは遅いです。

「docker wsl2 遅い(slow)」で検索をすると、ほとんどがボリュームマウント関係です。

公式のドキュメントでも、WindowsホストのディレクトリをマウントするよりもLinuxのファイルシステムをマウントするほうを勧めています。
https://docs.docker.com/docker-for-windows/wsl/#best-practices

対策としては、wsl2のLinux環境(UbuntuやDebian)の中にファイルを置いてvscodeで作業、というのが多そうです。

投稿2021/04/19 04:12

bsdfan

総合スコア4794

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

docker CE版を使う事で解決しました。

投稿2022/12/08 05:51

dvyd32k

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

docker system info の情報を拝見しますと、WSL2 用の環境のために、PC 上で 12GB 近くのメモリを消費していることがわかります。

CPUs: 6
Total Memory: 12.39GiB

システム全体としては 16GB ありますが、WSL2 が 12GB のメモリを使用しているように見えます。正確には、WSL2 の動的メモリ割り当て機能によって(こちらの解説記事 が分かりやすいです)、システム側がメモリを必要とする場合に、メモリを他のプロセスに割り当ててくれる、とされています。

(詳細は、環境によって異なる可能性が多いものの)私の持っている PC 環境を Windows Performance Recorder を使って以前に調べたところ、デフォルトの WSL2 の設定のままでは、Docker Desktop の起動と共に、 Context Switch の発生やディスク I/O の発生が見受けられました。

仮にこの WSL2 のメモリ割り当て設定が原因であれば、 .wslconfig のオプションを変更することで、Windows 10 全体の操作感は回復するかもしれません。

こちらのページにありますように、 C:\Users\名前.wslconfig ファイルを置き、次のような内容にされてみてはいかがでしょうか。

[wsl2] memory=4GB processors=2 swap=0

メモリ4GB、プロセッサ数が2と利用できる上限を押さえつつ、メモリのスワップをしないことでストレージへのアクセスを現象させるねらいです。リソースが足りなようであれば、追加して様子を見てはいかがでしょう。

ただ、他の方も言及されているように、どこにデータを置くかによっては WSL2 のストレージ読み書きの性能に影響が出る場合もあります。どうしても読み書きが許容できないようであれば、VirtualBox での開発をされたほうがよいでしょう。なお、Docker Desktop for macOS の場合もストレージによる影響は受ける場合がありえます。

投稿2021/04/25 06:19

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずWindows機でのDockerが遅いというより、PCのメモリが少ないのであれば遅いということはあり得るので、8GBであれば16GBに、16GBでも遅ければ32GBに拡張することをおすすめします。
(幸いWindows機であれば拡張はMacより容易だと思います)

次にWSLはその性質上、macOSで動くDockerに比べてメモリを消費する傾向にあります。
macOSでのDockerの方が速いかどうかで言うと、macOSの方が速いと言えます。

ただ、一応回避策として、wsl2のメモリサイズを変更する手法があります。
下記記事を参考に、memoryやswapの値を設定することをおすすめします。
https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120

投稿2021/04/17 13:20

hariNEzuMI928

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dvyd32k

2021/04/18 04:08

ご回答ありがとうございます。 上記の通りwindowsでは下記ようにdockerのみ一番遅いという結果でした。 xampp > vb >= vagrant >>>> docker
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問