LoginSignup
0
1

More than 1 year has passed since last update.

何も考えずにWSL2にDockerとDocker-composeをインストールするシェルスクリプト

Last updated at Posted at 2022-06-29
install_docker_for_ubuntu.sh
#!/bin/shecho Ubuntu にDockerとDocker-composeをインストールするシェルスクリプト起動\\n
​
echo 既存のパッケージのリストを更新\\n
sudo apt update
​
echo いくつかの必要条件パッケージをインストール\\n
sudo apt install apt-transport-https ca-certificates curl software-properties-common -yecho 公式DockerリポジトリのGPGキーをシステムに追加\\n
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
​
echo DockerリポジトリをAPTソースに追加\\n
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"echo パッケージデータベースを再度更新\\n
sudo apt update
​
echo Dockerをインストール\\n
sudo apt install docker-ce -yecho Dockerの状態確認\\n
echo WSLにおいては sudo systemctl "***" は基本的に使えません。 sudo service "***" に置き換えてください\\n
sudo service docker start
sudo service docker status
​
echo sudoなしでDockerコマンドを実行するように、ユーザーをdockerグループに追加する\\n
sudo usermod -aG docker ${USER}
sudo gpasswd -a ${USER} docker
​
echo docker-composeの公式リポジトリから「v2.6.1」をダウンロードして "/usr/local/bin/docker-compose" にコピー\\n
sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
​
echo docker-composeコマンドが実行可能になるように、権限を設定\\n
sudo chmod +x /usr/local/bin/docker-compose
​
echo dockerとdocker-composeの導入が終わりました。"docker-compose.yml"のあるフォルダで"docker-compose up -d"を入力して起動してください\\n
docker --version
docker-compose --version

表題の通り

  • Dockerを使うと開発がスムーズに進むらしい
  • 周囲のエンジニア仲間はみなMacだったりLinuxだったりで肩身が狭い
  • Windowsだってやれるようになってきたんだぞ、と思いつつWSLの情報が少なくて使いこなせない
  • そもそも環境構築ってなんだ、こちとら仕事のためにJavascriptやSassを書きたいだけだぞ(イライラ)

そんな貴方が有意義な明日を送れるように。

使い方

  1. WindowsのかたはWSL、MacのかたはMultipass、ご希望によりVM WareやVirtualBoxやVagrant等でUbuntuのOSが動作する環境を用意する
  2. 上記のシェルスクリプトを「install_docker_for_ubuntu.sh」の名前で保存し、Ubuntuのユーザーフォルダ( /home/ubuntu)に格納
  3. Ubuntuのコンソールで格納先に移動(cd ~)し、シェルスクリプトを起動するコマンドを入力(sh install_docker_for_ubuntu.sh)、ユーザーパスワードを求められるので入力
  4. 何も考えずにインストールがはじまるので何も考えずに待つ
  5. DockerとDocker-composeのバージョンが表示されていたら導入成功
  6. Ubuntuを再起動して各種コマンドを試みる

注意点

  • 上記シェルスクリプトはエラー発生時のことを考えていないため、エラー発生時の対応についてはサポートできません。ただ、インストールしたばかりのUbuntu数件で動作の実績はあるのでエラーが発生した場合は新しい仮想マシンで試すなどしてください

  • 先述の使い方の解説はディストリビューションの名前が「Ubuntu」、ユーザー名が「ubuntu」の場合を想定しています。Ubuntuの初期化時にUNIXユーザー名を独自に変更しているかたはホームフォルダのパスが異なるため、ファイルの格納やcdコマンドでの移動時に注意してください。(例として「john_doe」で登録したらホームフォルダは /home/john_doe になります)

  • WSLには「既定のディストリビューション」という概念があります。Dockerインストールを試みたのち、思った通りに動作しない場合は対象のUbuntuが既定のWSLになるように指定してください。名前が「Ubuntu」のディストリビューションを指定する場合はPowershellを開いて wsl --set-default Ubuntu です。

  • WSLにはバージョンがあります。ネット記事やMicrosoft Storeに促されるままにインストールしたUbuntuがバージョン1だった場合、想定通りに進まないことがありますのでPowershellを開いて wsl -l -v でバージョン2かどうかを確認してください。違ったら wsl --set-version Ubuntu 2 です。
    wsl_2022-06-29_103709.jpg

  • WSLは最新のWindows10ないし11であれば、エクスプローラーからフォルダを開くことができます。Windowsキー+Rで「ファイル名を指定して実行」を開き、 \\wsl$ と入力するとエクスプローラでWSL内のフォルダが表示され、Windows→WSLへのファイル転送が楽になり、少しだけしあわせになれます。(ただ、ファイルの操作権限でつまづくことがあるので注意してください)
    image.png

  • もともとのUbuntuではバックグラウンドサービスを操作する管理コマンドに systemctl というコマンドがありますが、2022年時点のWSL2を利用したUbuntuでは諸般の事情により利用できません。systemctlsudo service のコマンドに置き換えできますので、WSL利用者の皆様は systemctl のことは忘れてください。今後のアップデートに伴って使えるようになるかもしれません。

  • インストール時にパッケージマネージャーとしてaptを指定しているため、snapがお好みの方は書き換えてください。

  • 上記シェルスクリプトではDocker-compose v2.6.1を直に指定してダウンロードしています。それより新しいバージョンが必要なかたは、公式のリリースページからご希望のバージョンを確認してスクリプトを書き換えてください。

  • 仮想マシンの技術が発展したことや、canonicalとMicrosoftが仲良しになってUbuntuがメジャーなOSとして普及した背景などもあり、「WindowsよりもMacが」「MacよりもWindowsが」というOS毎の差異はほぼ無くなっている。Macユーザーが得意げな顔をしていても、そのMagic Keyboardで操作しているのはWSL利用者と同じくUbuntuかAlpine(かCentOS)のコマンドなのでWindowsユーザーの皆さんは気負いしなくてよい。どんぐりが背比べをするような無益な争いは無くそう

追記 2022-07-01

DockerをWSL2で有効化してDocker for Windowsで管理できるようにする記事はDocker Docs公式にある

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1