freks blog

WSL2上でDockerを使ってみる

WSL2の用意は WSL2を使ってみる でやりました

install Docker

Dockerのインストールは公式ドキュメントで入りました

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

といったコマンドで入れました Docker起動して

$ sudo service docker start

試しに

$ sudo docker run hello-world

で動きました

sudoなくて動かせるように

$ sudo usermod -aG docker $USER

をしました

install docker-compose

公式ドキュメントを見ていれました
Install Docker Compose | Docker Documentation

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

でいけました

Trouble shooting

ひとつはまったのがDockerで postgres - Docker Hub を使おうとしたら起動に失敗する..

起動すると

initdb: could not change permissions of directory on Postgresql container

というエラーがでて立ち上がりません..

Windows10とWSL2でファイルを共有できるように /mnt/c/ 以下のディレクトリでDocker起動していたのですが

docker - initdb: could not change permissions of directory on Postgresql container - Stack Overflow

をみて、/mnt/c/ ... から /home/user/ 以下に移動してやると動きました