結論
Docker最新化の方法
$ sudo /etc/init.d/docker restart latest
docker-composeをインストールする方法
$ sudo wget "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Bargeとは
Dockerホストに特化したLinuxディストリビューションです。
Dockerで軽量OSというとAlpine Linuxが思い浮かびますが、用途が全く異なります。BargeはDockerホスト向けで、Alpine LinuxはDockerイメージ向けです。
詳しい説明は公式や、分かりやすい記事に譲り、自分が使ってみた感想だけ書きます。
良いところ
-
軽量で起動が高速
最新のBarge2.13.0のisoイメージのサイズは 驚異の14MB 。
UbuntuやCentOSのイメージファイルと比較すると、その軽量ぶりが際立ちます。
OS | isoイメージファイルサイズ |
---|---|
CentOS 7.8 | 4.5GB |
Ubuntu 20.04 | 2.5GB |
Barge 2.13.0 | 14MB |
-
最初からDockerがインストールされている
UbuntuやCentOSにはDockerがデフォルトで入っておらず、またOSのバージョンによってはインストール手順が複雑です。動作確認の前にインストールで躓いたことがある人も多いのではないでしょうか(経験談)。
Bargeには最初からDockerが入っているため、起動すればすぐにDockerを使えます。また、Dockerのバージョンの切り替えも簡単なので、特定のバージョンをサクッと使いたいというニーズにも応えられます。
微妙なところ
-
パッケージ管理が独特
Ubuntuでいうところのapt
、CentOSでいうところのyum
は、Bargeではpkg
というコマンドです。
FreeBSDのパッケージ管理コマンドもpkg
という名前ですが、特に関係ないようです。
他のディストリビューションでは難なく入れられる(またはデフォルトで入っている)パッケージが、簡単にインストールできないことがあります。(例:curl
) -
最近更新されていない
2020年4月時点で、最新のリリースバージョンは2.14.0-rc2
で、リリース日は2019年8月です。
それまでは少なくとも2月に1度以上はリリースされていたため、今後更新されない可能性もあります。
環境
Vagrant boxを利用して起動
[bargee@barge ~]$ cat /etc/os-release
NAME="Barge"
VERSION=2.13.0
ID=barge
ID_LIKE=busybox
VERSION_ID=2.13.0
PRETTY_NAME="Barge 2.13.0"
HOME_URL="https://github.com/bargees/barge-os"
BUG_REPORT_URL="https://github.com/bargees/barge-os/issues"
Dockerの最新化
Barge のデフォルトのDockerは古いです。CE版になる以前のもので、2016年頃のバージョンです。
[bargee@barge ~]$ docker --version
Docker version 1.10.3, build 20f81dd
アップデートが必要なので、以下のコマンドを打ちます。
ここで、/etc/init.d/
は省略不可能です。通常のdocker
コマンドとは異なることに注意してください。(通常のdocker
コマンドがどこを指しているかは、which docker
で確認できます。)
[bargee@barge ~]$ sudo /etc/init.d/docker restart latest
docker[647]: Loading /etc/default/docker
WARNING: Possible Forward-Incompatibility of libnetwork
Once you upgrade Docker to v1.12 or newer, if you downgrade back,
you may need to initialize /var/lib/docker/network/files/local-kv.db.
Downloading v19.03.8 ...
少し時間がかかるので気長に待ちましょう。
Dockerデーモンの再起動が終わったら、バージョンが更新されていることを確認します。
[bargee@barge ~]$ docker --version
Docker version 19.03.8, build afacb8b7f0
latest
とすると最新版のDockerに切り替わりますが、以下のように特定のバージョンを指定することもできます。
[bargee@barge ~]$ sudo /etc/init.d/docker restart v19.03.8
docker-composeのインストール
Barge にはdocker-compose
はデフォルトで入っていません。公式サイトの手順 通りにインストールしようとすると、curl
が無くて詰みます。sudo pkg install curl
としてもcurl
はインストールできませんでした。
代わりにwget
がデフォルトで入っているため、wget
で代用します。2020年4月時点でのdocker-compose
安定版の最新バージョン(1.25.5)をインストールします。
[bargee@barge ~]$ sudo wget "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
[bargee@barge ~]$ sudo chmod +x /usr/local/bin/docker-compose
curlのファイル保存先指定は-o
wgetのファイル保存先指定は-O
curl -O
とwget -o
にはそれぞれ別の意味があって... ややこしいですね。
Bargeはusr/local/bin
にデフォルトではPATHが通っていないので、PATHが通っている/usr/bin
にシンボリックリンクを設定します。
バージョンを確認して、PATHを通せたことを確認します。
[bargee@barge ~]$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
[bargee@barge ~]$ docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6
以上で、Barge に最新のDockerとdocker-composeをインストールできました。