Edited at

WSLでdockerのインストールからdocker-composeまで動かす


これは何?

私の技術メモです。

docker for windowsのdockerデーモンを使用してWSLでdockerを動かせるようにしました。


前提



  • docker for Windowsが動かせる。


    • WSLでdockerデーモンが立ち上げられないため、docker for windowsのdockerデーモンを使用します。(最近ではそうでもないらしいのですが…)

    • docker for windowsのシステム要件上、必然的にWin10 64bit Proとなります。



  • どっちでもいいのですが、Linuxコンテナイメージを使っています。



やりたいこと


  • WSLでLinux(ubuntu)を動かせるようにする。

  • ubuntu上でdockerを動かせるようにする。

  • ubuntu上でdocker-composeを動かせるようにする。


    • gitlabを試しに起動してみる。




やってみた


WSLでLinuxを動かせるようにする


  • コントロールパネルよりWSLを導入

キャプチャ.PNG

キャプチャ2.PNG


  • 再起動を要求されるので再起動後、MicrosoftStoreからubuntuを検索して選択

    とりあえずubuntuを選択


  • インストールが終われば、ubuntuが追加されて選べるようになる

    キャプチャ5.PNG


  • 起動後、installingを数分待って、デフォルトのユーザー名/パスワードを入れれば使えるように!

    キャプチャ6.PNG



プロキシ関連の対応が必要な場合



  • とりあえずこのあたりは対応(profile変更後は、sourceコマンド実行する)


    • /etc/profile

    • /etc/apt/apt.conf



  • とりあえずaptをアップデート(なんと30分近くかかった…)


sudo apt update

sudo apt upgrade


Linuxの上でdockerを動かせるようにする


docker公式のおすすめ通り、dockerのリポジトリを使ってインストール

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo -E add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

add-apt-repositoryはaptみたいな個別プロキシ設定が無さそうので、sudo -Eで強引に行くらしい。

sudo apt-get install docker-ce


  • インストールできたことを確認。

docker --version

Docker version 18.09.0, build 4d60db4


docker起動時のエラー


  • サービスstartでエラー

sudo systemctl start docker

System has not been booted with systemd as init system (PID 1). Can't operate


docker for windowsのdockerデーモンを共用する

キャプチャ1.PNG

その後、ubuntuからもloaclhostのポート2375をDOCKER_HOSTとして設定してあげれば、さもubuntu上にdockerデーモンがいるかのように使用可能に。

export DOCKER_HOST=tcp://localhost:2375

dockerコマンドが動くようになりました

キャプチャ.PNG


Linuxの上でdocker-composeを動かす


  • docker-composeを使えるようにする



    • docker-composeのバージョンが古くなっているので、Docker公式を確認して最新のものを入れることを推奨します。

    • ここでの1.6.2のところを変えるだけで良いはずです。



curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose


  • gitlabからgit clone

git clone https://github.com/sameersbn/docker-gitlab



  • docker-compose.ymlのここだけ変えました

    - GITLAB_ROOT_PASSWORD=


  • upする

docker compose up



  • docker-compose.ymlで開けたポートにアクセス

キャプチャa.PNG


参考にさせていただいたもの(ありがとうございます)