Vagrant で Linux での最新の Docker 環境を構築
私は普段、 Docker を使った開発では macOS で Docker Desktop for Mac を使う事が多いのですが、
今回とあるプロジェクトで Linux を使っているメンバーが、 Linux 固有で発生する問題に対処した Pull request を作った経緯で、レビューの際の動作確認の為に表題の環境を作ったので備忘録がてらメモです。(Docker 社は現在 Docker Desktop for Linux を開発していると言う事で、この備忘録を見る頃には同じ方法は使わないかもしれませんが)
ちなみに今回対処した問題と言うのは、ローカル開発環境として、ホストマシンとコンテナ側のファイルの同期時に起きるパーミッションの問題で、それを解決する為に使ったツールは fixuid です。それはまた後日記事にするかもしれません。
尚、今回は Vagrant 2.2.18, VirtualBox 6.1.26 r145957 で検証しました。
Vagrant イメージ準備
今回は適当に ubuntu/focal64
を使いました。以下の 3 つのコマンドを順番に実行します (途中で色々出力されると思います):
vagrant init ubuntu/focal64
vagrant up
vagrant ssh
問題がなければ無事 vagrant に SSH できるかと思います。ここで一旦 OS のバージョン等を見てみます:
vagrant@ubuntu-focal:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
Docker インストール
Linux が準備できた所で早速 Docker をインストールしてみます。
インストールの手順は公式ドキュメントにあります。 Linux の場合、 distro 毎にマニュアルが分かれているので、今回は Ubuntu の手順に従う事になります。
以下、実行するコマンドを一気に羅列します:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
以上の手順で問題がなければ Docker がインストールされている筈です。バージョンを見てみましょう:
vagrant@ubuntu-focal:~$ docker -v
Docker version 20.10.9, build c2ea9bc
適当なコンテナも実行してみます:
vagrant@ubuntu-focal:~$ sudo docker run docker/whalesay cowsay boo
_____
< boo >
-----
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
問題なさそうです。
尚、この状態ですと Docker Compose は使えないので別途インストールする必要があります:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
これも問題がなければ使える様になります:
vagrant@ubuntu-focal:~$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c
コメントを残す