LoginSignup
8
4

More than 3 years have passed since last update.

Dockerを使うためにFreeBSDでbhyve(vm-bhyve)を使ってAlpine Linuxをインストール

Last updated at Posted at 2019-12-11

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 は以下のようになります

/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を使い始められそうです

8
4
1

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
8
4