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

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

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

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

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

Q&A

解決済

1回答

6809閲覧

wsl2でdocker-compose upがCouldn't connect to Docker daemon at http+docker://localhost - is it running?

hyogo

総合スコア23

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

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

0グッド

0クリップ

投稿2020/11/04 06:30

vmware + ubuntu + docker-compose でwordpressの開発環境を作っていました。
wsl2に移行したいのですがdocker-compose upが通らず困っています。

試したこと以外にどんなことを確認すればよいかご教授よろしくお願いいたします。

困っていることとerror内容

$ sudo docker-compose up ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

と言われてしまいました。

試したこと確認したこと1

検索ワード「Couldn't connect to Docker daemon at http+docker://localhost - is it running?」
でたどり着いた
【Docker】 ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running? - Qiita
を参考にしました。

$ which docker-compose

$ cd /usr/bin

にインストールされているのを確認して

$ sudo usermod -aG docker $USER $ sudo chmod +x /usr/bin/docker-compose
$ groups $USER pcuserubuntu : pcuserubuntu adm dialout cdrom floppy sudo audio dip video plugdev netdev docker

usermod,chmodする前のpermissionの状態を確認していなかったのですが、

-rwxr-xr-x 1 root root 84960240 Jun 23 00:44 docker -rwxr-xr-x 1 root root 420 Nov 23 2019 docker-compose

となっています。

groupsにも追加できているようですし、dockerもdocker-composeも実行許可されてるように思うので、参考サイトとは違うと考えました。

試したこと確認したこと2

ubuntu exitでログアウト
wsl -t Ubuntuでシャットダウン
windows10の再起動

試したこと確認したこと3

dockerを使わないプロジェクトではhttp://localhost:portnumber
は表示できているのでdockerかdocker-composeだけの問題かなと考えました。

環境

Docker version 19.03.12, build 48a66213fe docker-compose version 1.25.0, build unknown
NAME="Ubuntu" VERSION="20.04 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04 LTS" VERSION_ID="20.04"

wordpress dockerプロジェクトディレクトリ構成

wordpress
-- db_data
-- phpmyadmin
-- wp-content
-- docker-compose.yml

docker-compose.yml

version: '2.1' services: db: image: mysql:5.7.25 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: password wordpress: image: wordpress:4.9.1 depends_on: - db ports: - "8080:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: password volumes: - .\wp-content:/var/www/html/wp-content phpmyadmin: image: phpmyadmin/phpmyadmin environment: - PMA_ARBITRARY=1 - PMA_HOST=db - PMA_USER=wordpress - PMA_PASSWORD=password links: - db ports: - 4040:80 volumes: - ./phpmyadmin/sessions:/sessions volumes: db_data:

python dockerプロジェクトディレクトリ構成

python_test
-- build
-- server
-- docker-compose.yml

docker-compose.yml

version: '3' services: app: image: python:latest volumes: - ./server:/var/www/html tty: true

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

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

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

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

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

bsdfan

2020/11/04 07:15 編集

Docker Desktopではなく、wsl2のUbuntuに直接Dockerをインストールしたということでしょうか? dockerのdaemonが起動しているか、 daemonがhttpを受け付けるように設定しているか、 という点は大丈夫ですか? なんとなく、vmwareでやっていたときの環境変数が残っていて悪さをしているようにも見えます。
hyogo

2020/11/04 08:35

早速のコメントありがとうございます。 linux サービスデーモンについて調べながら以下で確認してみました。 必要な情報があればご教授お願い致します。 $ systemctl でdockerデーモンの状態確認してみました。 $ systemctl list-unit-files --type=service docker.service enabled enabled $ service --status-all [ - ] docker $ sudo systemctl status docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down $ sudo systemctl start docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down このerrorについて調べてみるとsystemd がPID 1になっていないなどの情報が出てきたので、 $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.4 0.0 1868 1080 ? Sl Nov03 7:20 /init root 7915 0.0 0.0 1868 784 ? Ss 15:00 0:00 /init root 7916 0.0 0.0 1868 784 ? R 15:00 0:00 /init pcuseru+ 7917 0.0 0.0 13236 8460 pts/0 Ss 15:00 0:00 -bash pcuseru+ 8683 0.0 0.0 10604 3336 pts/0 R+ 17:14 0:00 ps aux 試しにdocker.serviceをdisableにしようとすると $ sudo systemctl disable docker Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable docker Removed /etc/systemd/system/multi-user.target.wants/docker.service. ---------------------------------------------------------------------- ↓このroot のPIDが1であることが関係している可能性はあるでしょうか? $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.4 0.0 1868 1080 ? Sl Nov03 7:20 /init ↓これについてはWSL2の特有の問題だというような記事が出てきたので https://shikiyura.com/2020/06/execute_systemctl_on_wsl2/ https://www.tomoyan.net/windows/wsl 書かれていた対処法を進めたところ、 $ sudo apt install git dotnet-runtime-3.1 daemonize Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package dotnet-runtime-3.1 となってしまいました。 理解していないままこの対処法を進めて状況を悪くしかねないので、いったんここで切らせていただきます。 --------------------------------------------------------------------- windows10のdockerはuninstallしています。 システム環境変数とユーザー環境変数を眺めてみましたが、 dockerという文字は見つかりませんでした。
hyogo

2020/11/04 09:23

一点回答できていませんでした。 追記します。 Docker Desktopではなく、wsl2のUbuntuに直接Dockerをインストールしたということです。 [Ubuntuにdockerをインストールする - Qiita](https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d)
bsdfan

2020/11/04 09:30

dockerを起動するだけなら、 sudo service docker start で行けるかと。 wsl2 ubuntu docker で検索するといくつか見つかります。 systemdとかはwslとLinuxについてある程度理解してから手を出した方がいいと思います。 個人的にはDocker Desktopをwsl2バックエンドでインストールして、wsl integrationを使う方が簡単かなぁと思います。
hyogo

2020/11/05 16:33

sudo service docker startで解決しました。 ただ、自動起動設定がうまくいかずsystemd update-rc.d chkconfigなどで調べているところです。 docker-composeからは話が少しそれる気がしますので後日別の質問として投稿したいと思います。 またご教授いただければ幸いです。 ベストアンサーに選ばせていただきたいのですが、よろしければ最後のコメントを回答に転記していただけたらと思います。 Docker Desktopとwsl integrationも試してみたいと思います。 ありがとうございました。
bsdfan

2020/11/05 23:48

wslではsystemdが動いていないので、自動起動とかは通常のLinuxとはやり方が違ってきます。確かに、別の質問立てるほうが良さそうです。
guest

回答1

0

ベストアンサー

dockerのdaemonが起動していないようなので、起動してください。

sudo service docker start

投稿2020/11/05 23:49

bsdfan

総合スコア4794

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

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

hyogo

2020/11/06 13:10

助けていただいて大変助かりました。 またご教授のほどよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問