これは何?
私の技術メモです。
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を導入
再起動を要求されるので再起動後、MicrosoftStoreからubuntuを検索して選択
とりあえずubuntuを選択
プロキシ関連の対応が必要な場合
-
とりあえずこのあたりは対応(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デーモンを共用する
その後、ubuntuからもloaclhostのポート2375をDOCKER_HOSTとして設定してあげれば、さもubuntu上にdockerデーモンがいるかのように使用可能に。
export DOCKER_HOST=tcp://localhost:2375
Linuxの上でdocker-composeを動かす
- docker-composeを使えるようにする
-
docker-compose
のバージョンが古くなっているので、Docker公式を確認して最新のものを入れることを推奨します。 - ここでの
1.6.2
のところを変えるだけで良いはずです。 Permission denied
でうまくいかない場合、sudo
してから実行する必要があるとのことです。@rapidliner00さん、ありがとうございます!
-
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
で開けたポートにアクセス