概要
- Docker for WindowsではなくUbuntuにDockerを入れて使えるようにする
- 詰まりがちなところも解説
注意点
- 構築前にDokcer for Windowsがwindowsにインストールされている場合はアンインストールしてからの実行がおすすめ
ubuntuインストール起動
Windows環境でWSLを有効化にする
- 管理者権限でPowerShellを起動し、下記のコマンドを入力
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Microsoft StoreからUbuntuをインストール
ubuntuを起動
- 初回起動時に「ユーザー名」「パスワード」の設定を求められるので、適切に設定
Dockerのインストール
Ubuntu上でコマンドを実行
Dockerのパッケージをインストールする
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Docker公式のGPGキーを取得して追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
確認
sudo apt-key fingerprint 0EBFCD88
インストール
マシン構成によって次のコマンドが若干違うためこちらを確認して実行
下記はx86_64の場合
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
リポジトリの最適化
処理に時間がかかるので注意
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
インストール確認
sudo docker --version
バージョン情報が出力されていればDokcerのインストールは完了
(任意)dockerコマンドを使いやすくする
インストールした直後はsudo
コマンドを入力しなければdokcer
が実行できない
下記コマンドを実行してsudo
を入力しないで実行を行えるようにする
sudo usermod -aG docker $USER
Dokcer立ち上げ
# 開始
sudo service docker start
# 停止
sudo service docker stop
開始後にdokcer ps などで立ち上がっていることを確認すると良い
注意点
Windowsの再起動などを行ったあとはDockerの立ち上げから必要なので注意
検索すると色んな人が自動起動のやり方説明してるので気になった人はやるといいかもしれない。
Docker-composeのインストール
Ubuntu上でコマンドを実行
インストール
公式からバージョン情報を確認してインストールしたいバージョンにコマンドを書き換えて実行
https://github.com/docker/compose/releases
sudo curl -L "https://github.com/docker/compose/releases/download/ここにバージョン/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
記載時の最新バージョンの場合は
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
上記コマンド実行後にこちらを実行してパスを通す
sudo chmod +x /usr/local/bin/docker-compose
注意点
下記コマンドでインストールした場合、バージョンが1.25.0になってしまうため注意
sudo apt install docker-compose
このコマンドでアンインストールしてから上記の方法で再インストールすると最新バージョンにできる
sudo apt remove docker-compose
インストール確認
docker-compose --version
バージョン情報が出力されていればOK
おわり
これで構築は終わり。
Dokcerのコンテナ起動などは普段と同じように。
ふぁいと
おまけ
この環境時 + Laravelで困ったことを記載する
Laravel_logのPermissionError
/hogehoge/laravel/storage/logs/laravel-2021-02-14.log” could not be opened: failed to open stream: Permission denied
みたいなのが出た。
Ubuntu上でプロジェクトディレクトリまで移動し、権限を付与してあげると治る
sudo chmod -R 755 /hogehoge/laravel/storage/logs/
docker.host.internalが使えない
docker.host.internal
はDocker for Windows
かDokcer for Mac
でしか使えない(記載時点では)
そのため、docker-compose.ymlに下記を追記して使えるようにしなければならない
app:(サービス名)
{中略}
extra_hosts:
- "host.docker.internal:host-gateway"
docker-compose up -d --buildで構築し直すと動くようになる。
私はここでめちゃくちゃハマった
ほんとに終わり
Ubuntu環境結構快適。
おいでよUbuntu+Dokcerの森