Linux
64-bit LinuxホストでDocker EngineとDocker Composeを用意し、Vylineを起動します。
前提
Vylineの公開containerはlinux/amd64とlinux/arm64をbuildしています。Docker EngineとCompose v2が動けば、Vyline側の起動手順は共通です。
uname -m
docker version
docker compose version
Dockerの導入
| 環境 | Dockerの入れ方 | サービス管理 |
|---|---|---|
| Debian / Ubuntu | Docker公式APT repository | systemd |
| Fedora / RHEL / CentOS系 | Docker公式RPM repository | systemd |
| Arch Linux | distribution package | systemd |
| openSUSE | distribution package | systemd |
| Alpine Linux | apk package | OpenRC |
| NAS / appliance | 製品のcontainer機能に従う | 製品固有 |
以下は各環境でDocker Engine、Buildx、Compose v2まで用意する手順です。既にDockerを運用しているhostでは、既存のdata-rootやpackageを消さず、まずdocker versionとdocker compose versionを確認してください。
Vylineを起動
docker version
docker compose version
docker run --rm hello-world
mkdir -p ~/vyline && cd ~/vyline
curl -LO https://raw.githubusercontent.com/tqmane/vyline/main/docker-compose.yml
docker compose pull
docker compose up -d
Debian / Ubuntu
Docker CEのAPT repositoryを登録します。UbuntuとDebianでrepository URLとcodenameの取り方が少し違うため、/etc/os-releaseから判定します。
. /etc/os-release
case "$ID" in
ubuntu) DOCKER_DISTRO=ubuntu; DOCKER_SUITE="${UBUNTU_CODENAME:-$VERSION_CODENAME}" ;;
debian) DOCKER_DISTRO=debian; DOCKER_SUITE="$VERSION_CODENAME" ;;
*) echo "この手順の対象はUbuntu/Debianです: $ID"; exit 1 ;;
esac
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL "https://download.docker.com/linux/$DOCKER_DISTRO/gpg" \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
printf 'Types: deb\nURIs: https://download.docker.com/linux/%s\nSuites: %s\nComponents: stable\nArchitectures: %s\nSigned-By: /etc/apt/keyrings/docker.asc\n' \
"$DOCKER_DISTRO" "$DOCKER_SUITE" "$(dpkg --print-architecture)" \
| sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
Ubuntu/Debian派生distributionではcodenameやrepository互換性が異なる場合があります。上のID判定に入らないOSへUbuntu/Debianのrepositoryを無理に登録せず、そのdistribution自身のDocker packageを確認してください。
Fedora / RHEL / CentOS Stream / Rocky / Alma
Fedora
現在のFedora向けDocker repositoryはdnf config-manager addrepo --from-repofileで登録できます。
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
RHEL
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
CentOS Stream
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
Rocky Linux / AlmaLinux
Dockerが公式に検証するRHELそのものとは別distributionなので、まずOS標準/ベンダー側のcontainer方針を確認してください。Docker CEを使う場合はRHEL互換releaseに対応するrepositoryを使い、install後に必ず実containerで確認します。
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
SELinuxは無効化しません。denyが出た場合だけaudit logとvolume labelを確認します。
Arch Linux系
sudo pacman -Syu docker docker-compose
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
Arch系はrolling updateでkernel/containerd/runcも同時に変わるため、大きな更新後はsystemctl status docker、docker info、Vylineのhealthを確認します。
openSUSE
sudo zypper install docker docker-compose
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
releaseによってCompose packageの提供名やversionが異なるため、docker compose versionが通らない場合はzypper search docker-composeで現在のrepositoryにあるCompose v2 packageを確認します。
Alpine Linux
dockerとdocker-cli-composeはcommunity repositoryから導入します。communityが無効なら、使用中releaseと同じbranchのcommunityを先に有効化します。
sudo apk add docker docker-cli-compose
sudo rc-update add docker default
sudo service docker start
sudo docker run --rm hello-world
sudo docker compose version
rc-status
VylineのBun runtimeはcontainer image内に含まれます。Host側ではDocker daemonとkernelの要件を満たす必要があります。
Firewall / SELinux / AppArmor
- UFW / firewalld: LANから3000/tcpへ到達させる場合だけ必要な範囲を許可します。
- SELinux: 無効化を前提にしません。
- AppArmor: DockerやVylineに対するdeny logが出た場合にprofileを確認します。
- Vyline:
VYLINE_LAN_ACCESS=falseが既定です。portが開いていても未認証remote accessは許可されません。
Rootless Docker
リポジトリにはrootless Docker専用の設定や検証はありません。このDocsは通常のDocker Engineを前提にします。rootlessで使う場合はbind mountの所有権、port publish、daemonの自動起動を別途確認してください。