#!/bin/sh
echo Ubuntu にDockerとDocker-composeをインストールするシェルスクリプト起動\\n
echo 既存のパッケージのリストを更新\\n
sudo apt update
echo いくつかの必要条件パッケージをインストール\\n
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
echo 公式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 -y
echo 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を書きたいだけだぞ(イライラ)
そんな貴方が有意義な明日を送れるように。
使い方
- WindowsのかたはWSL、MacのかたはMultipass、ご希望によりVM WareやVirtualBoxやVagrant等でUbuntuのOSが動作する環境を用意する
- 上記のシェルスクリプトを「install_docker_for_ubuntu.sh」の名前で保存し、Ubuntuのユーザーフォルダ(
/home/ubuntu
)に格納 - Ubuntuのコンソールで格納先に移動(
cd ~
)し、シェルスクリプトを起動するコマンドを入力(sh install_docker_for_ubuntu.sh
)、ユーザーパスワードを求められるので入力 - 何も考えずにインストールがはじまるので何も考えずに待つ
- DockerとDocker-composeのバージョンが表示されていたら導入成功
- 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は最新のWindows10ないし11であれば、エクスプローラーからフォルダを開くことができます。Windowsキー+Rで「ファイル名を指定して実行」を開き、
\\wsl$
と入力するとエクスプローラでWSL内のフォルダが表示され、Windows→WSLへのファイル転送が楽になり、少しだけしあわせになれます。(ただ、ファイルの操作権限でつまづくことがあるので注意してください)
-
もともとのUbuntuではバックグラウンドサービスを操作する管理コマンドに
systemctl
というコマンドがありますが、2022年時点のWSL2を利用したUbuntuでは諸般の事情により利用できません。systemctl
はsudo 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公式にある