dockerを使うためにはMacを使っているのでDocker for Macを使えばいいのですが、
デスクトップ環境にはできるだけ余計なものをインストールしたくないのでサーバ上でやることにします
しかし、社内のサーバはFreeBSDしかインストールされていない世界なので(フィクションです)
bhyve(vm-bhyve)を使って軽量なAlpine Linuxをインストールして、そこでdockerを実行することにします
FreeBSDのバージョンは12.1です
vm-bhyveのインストール
# pkg install -y vm-bhyve grub2-bhyve
vm-bhyveで使うbridgeを作成
今回はbridgeを手動で作成します
# sysrc cloned_interfaces="bridge0" ifconfig_bridge0="up addm em0"
# kldload if_bridge.ko
# ifconfig bridge0 create up
# ifconfig bridge0 addm em0
vm-bhyveの初期設定
# sysrc vm_enable="YES" kld_list="vmm" vm_dir="/var/vm"
# kldload vmm
# mkdir /var/vm
# vm init
# vm switch create -t manual -b bridge0 public
# cp /usr/local/share/examples/vm-bhyve/* /var/vm/.templates/
vm initで/var/vm以下に色々ファイルが作成されます
/var/vm/.config/system.conf は以下のようになります
switch_list="public"
bridge_public="bridge0"
type_public="manual"
Alpine Linuxのインストール
https://alpinelinux.org/downloads/でVirtualのx86_64 のISOを使います
ISOのダウンロードと登録
# fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-virt-3.10.3-x86_64.iso
# vm iso alpine-virt-3.10.3-x86_64.iso
# vm iso
DATASTORE FILENAME
default alpine-virt-3.10.3-x86_64.iso
テンプレートalpine、ディスク15Gで作成、メモリ1G、仮想CPU1、vm名はalpinevmで作成
# vm create -t alpine -s 15G -m 1G -c 1 alpinevm
設定を編集する場合はvm configureコマンドでで行います
# vm configure alpinevm
下記URLによるとAlpineのvirtualを使っている場合
https://github.com/churchers/vm-bhyve/wiki/Supported-Guest-Examples
vmlinuz-vanillaとinitramfs-vanillaをvmlinuz-virtとinitramfs-virtを
変更する必要があるようなので変更し、utctime="yes"も追加します
設定ファイルは今回の場合だと/var/vm/alpinevm/alpinevm.confに格納されます
loader="grub"
+utctime="yes"
cpu="1"
memory="1G"
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
-grub_install0="linux /boot/vmlinuz-vanilla initrd=/boot/initramfs-vanilla alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,sr-mod"
-grub_install1="initrd /boot/initramfs-vanilla"
-grub_run0="linux /boot/vmlinuz-vanilla root=/dev/vda3 modules=ext4"
-grub_run1="initrd /boot/initramfs-vanilla"
+grub_install0="linux /boot/vmlinuz-virt initrd=/boot/initramfs-virt alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,sr-mod"
+grub_install1="initrd /boot/initramfs-virt"
+grub_run0="linux /boot/vmlinuz-virt root=/dev/vda3 modules=ext4"
+grub_run1="initrd /boot/initramfs-virt"
uuid="自動で生成されているのでそのままで"
インストール開始
# vm install alpinevm alpine-virt-3.10.3-x86_64.iso
# vm console alpinevm
起動が終わると下記のような画面になるのでrootでログインして(パスワードは聞かれません)
setup-alpineコマンドを実行してインストールしていきます
Welcome to Alpine Linux 3.10
Kernel 4.19.80-0-virt on an x86_64 (/dev/ttyS0)
localhost login:
ここまで来れば何事もなくインストールできたのでdockerを使い始められそうです