#author("2025-04-15T02:17:31+00:00","default:iseki","iseki") ** [[VyOS]] の [[Docker]] イメージを自分で作ってみる [#w16f99dd] *** VyOS 1.3 [#lfb39dd1] - VyOS 1.2 で失敗したので,ISOイメージを本家から取ってくる. - 2020 9/20 時点の rolling 版 - wget https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso - debian のバージョンは buster - ISO から Docker イメージを作成は,VyOS 1.2参照 - OK! *** VyOS 1.2 [#v99c0259] **** ISOファイルの作成 [#yfc981b6] - https://docs.vyos.io/en/latest/contributing/build-vyos.html - VyOS 1.3 は make iso でエラー (2020 0920) - VyOS 1.2 を使用 # docker pull vyos/vyos-build:crux # git clone -b crux --single-branch https://github.com/vyos/vyos-build # docker build -t vyos/vyos-build:crux docker # docker images # cd vyos-build # docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash (コンテナ内) # cd /vyos (コンテナ内) # ./configure (コンテナ内) # make iso (コンテナ内) # ls -l build (コンテナ内) # exit **** ISO ファイルを展開して,Docker Image を作成 [#racb1cd8] - https://hub.docker.com/r/2stacks/vyos # mkdir rootfs (パーミッション注意) # mount -o loop build/vyos-999.202009191402-amd64.iso rootfs # mkdir unsquashfs (パーミッション注意) # unsquashfs -f -d unsquashfs/ rootfs/live/filesystem.squashfs # cd unsquashfs # find etc lib opt usr -type d | xargs chmod a+rx (パーミッション注意) # cd .. # tar -C unsquashfs -c . | docker import - vyos_netp # docker images **** 構成の変更 [#mcbdd2d0] - vyos_netp を起動 # docker run -d --name vyos_netp --privileged -v /lib/modules:/lib/modules vyos_netp:latest /sbin/init # docker exec -it vyos_netp /bin/bash (コンテナ内) # vi /etc/resolv.conf (コンテナ内) # vi /etc/source.list deb http://deb.debian.org/debian jessie main deb http://security.debian.org jessie/updates main (コンテナ内) # apt-get update (コンテナ内) # apt-get install openconnect (コンテナ内) # exit # docker commit vyos vyos_netp:test # docker images - reboot(restart)すると元に戻るファイル -- /etc/resolv.conf -- /etc/hostname -- /etc/apt/source.list **** 構成の変更2 [#f29cdad9] # mkdir rootfs # docker export vyos_netp |( cd rootfs; tar xfvp -) # ..... 変更 # tar -C rootfs -c . | docker import - vyos_netp:200920 # docker images - それでも元に戻るやつは戻る! **** Trouble Shooting [#t34ccee1] - apt-get -- Error: cannot get security labeling handle: No such file or directory (コンテナ内) # mount -o remount,ro /sys/fs/selinux **** Error [#v0f3fbce] - passwd コマンドが実行できない.(エラーで止まる) - vyos ユーザがいない. - vyos で configure コマンドが打てない.(adduser で vyosユーザを作成) - 結局使えないじゃん!