「Debian活用/仮想マシン設定」の版間の差分
< Debian活用
ナビゲーションに移動
検索に移動
(→Docker) |
|||
| (同じ利用者による、間の11版が非表示) | |||
| 2行目: | 2行目: | ||
== 設定 == |
== 設定 == |
||
=== nftables === |
|||
<nowiki> |
|||
$ sudo systemctl reload nftables |
|||
$ sudo systemctl restart lxc-net |
|||
$ sudo systemctl restart docker |
|||
$ sudo nft list ruleset |
|||
</nowiki> |
|||
=== libvirt === |
=== libvirt === |
||
<nowiki> |
<nowiki> |
||
$ sudo adduser |
$ sudo adduser USER libvirt |
||
$ newgrp libvirt |
$ newgrp libvirt |
||
| 228行目: | 237行目: | ||
<nowiki> |
<nowiki> |
||
lxc.net.0.link = br0 |
lxc.net.0.link = br0 |
||
</nowiki> |
|||
=== Docker === |
|||
<nowiki> |
|||
sudo adduser USER docker |
|||
</nowiki> |
|||
/etc/docker/daemon.json |
|||
<nowiki> |
|||
{ |
|||
"data-root": "/docker" |
|||
} |
|||
</nowiki> |
|||
※ver.29では、containerdが使われている |
|||
/etc/containerd/config.toml |
|||
<nowiki> |
|||
#root = "/var/lib/containerd" |
|||
</nowiki> |
|||
/etc/nftables.conf |
|||
<nowiki> |
|||
table inet filter { |
|||
chain input { |
|||
# Docker |
|||
iifname "docker0" udp dport {53,67} accept |
|||
iifname "docker0" tcp dport 53 accept |
|||
} |
|||
chain forward { |
|||
# Docker |
|||
iifname "docker0" accept |
|||
oifname "docker0" ct state established,related accept |
|||
} |
|||
} |
|||
</nowiki> |
|||
<nowiki> |
|||
$ docker pull debian:trixie |
|||
$ docker images |
|||
$ docker run --name debian-trixie -it debian:trixie bash |
|||
$ docker rm debian-trixie |
|||
</nowiki> |
|||
==== apache ==== |
|||
Dockerfile |
|||
<nowiki> |
|||
FROM debian:trixie |
|||
RUN apt update && \ |
|||
apt install -y apache2 && \ |
|||
rm -rf /var/lib/apt/lists/* |
|||
EXPOSE 80 |
|||
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] |
|||
</nowiki> |
|||
<nowiki> |
|||
$ docker build -t apache . |
|||
$ docker run -d \ |
|||
--name web \ |
|||
-p 8080:80 \ |
|||
apache |
|||
</nowiki> |
</nowiki> |
||
2026年7月24日 (金) 15:43時点における最新版
概要
設定
nftables
$ sudo systemctl reload nftables $ sudo systemctl restart lxc-net $ sudo systemctl restart docker $ sudo nft list ruleset
libvirt
$ sudo adduser USER libvirt $ newgrp libvirt $ sudo virsh net-list --all $ sudo virsh net-autostart default $ sudo virsh net-start default
/etc/nftables.conf
table inet filter {
chain input {
iifname "virbr0" udp dport {53,67} accept
iifname "virbr0" tcp dport 53 accept
}
chain forward {
iifname "virbr0" accept
oifname "virbr0" ct state established,related accept
}
}
$ sudo nft insert rule inet filter input iifname "virbr0" accept $ sudo nft insert rule inet filter forward iifname "virbr0" accept $ sudo nft insert rule inet filter forward oifname "virbr0" accept
$ osinfo-query os $ sudo virt-install \ --name debian \ --memory 4096 \ --vcpus 4 \ --disk path=~/libvirt/debian.qcow2,size=30,bus=virtio \ --os-variant debian13 \ --network network=default,model=virtio \ --graphics spice \ --cdrom ~/libvirt/debian-13.6.0-amd64-netinst.iso
$ virt-manager
削除
$ sudo virsh list --all $ sudo virsh shutdown NAME ($ sudo virsh destroy NAME) $ sudo virsh undefine NAME --remove-all-storage
bridge接続
※ifupdownやconnmanなどが起動しているなら停止する。
$ sudo nmcli connection add type bridge \ ifname br0 \ con-name br0 \ ipv4.method auto \ ipv6.method auto $ sudo nmcli connection add type ethernet \ ifname enp37s0 \ master br0 \ con-name br0-slave-enp37s0 $ sudo nmcli connection down "プロファイル 1" $ sudo nmcli connection up br0 $ sudo nmcli connection up br0-slave-enp37s0
$ nmcli device status $ nmcli connection show
virt-managerか、設定ファイル(/etc/libvirt/qemu)で設定する。
$ sudo virsh edit debian
$ virt-xml
systemd-networkdと共存する
/etc/NetworkManager/conf.d/10-unmanaged.conf
[keyfile] unmanaged-devices=interface-name:enp37s0;interface-name:br0
sudo systemctl restart NetworkManager nmcli device
/etc/systemd/network/10-br0.netdev
[NetDev] Name=br0 Kind=bridge
/etc/systemd/network/20-enp37s0.network
[Match] Name=enp37s0 [Network] Bridge=br0
/etc/systemd/network/30-br0.network
[Match] Name=br0 [Network] DHCP=yes IPv6AcceptRA=yes
sudo systemctl enable --now systemd-networkd
sudo apt install systemd-resolved resolvectl status
LXC(Unprivileged)
~/.config/lxc/lxc.conf
lxc.lxcpath = /lxc
- /etc/subuid
- /etc/subgid
USER:100000:65536
~/.config/lxc/default.conf
lxc.include = /etc/lxc/default.conf lxc.idmap = u 0 100000 65536 lxc.idmap = g 0 100000 65536
$ lxc-create -n debian -t download
/lxc/debian/config
lxc.apparmor.profile = lxc-container-default-with-nesting
/etc/lxc/lxc-usernet
USER veth lxcbr0 10
/etc/nftables.conf
table inet filter {
chain input {
iifname "lxcbr0" udp dport {53,67} accept
iifname "lxcbr0" tcp dport 53 accept
}
chain forward {
iifname "lxcbr0" accept
oifname "lxcbr0" ct state established,related accept
}
}
$ lxc-start -n debian $ lxc-attach -n debian $ lxc-stop -n debian
削除
$ lxc-stop -n debian $ lxc-destroy -n debian
bridge接続
/etc/lxc/lxc-usernet
USER veth br0 10
/lxc/debian/config
lxc.net.0.link = br0
Docker
sudo adduser USER docker
/etc/docker/daemon.json
{
"data-root": "/docker"
}
※ver.29では、containerdが使われている
/etc/containerd/config.toml
#root = "/var/lib/containerd"
/etc/nftables.conf
table inet filter {
chain input {
# Docker
iifname "docker0" udp dport {53,67} accept
iifname "docker0" tcp dport 53 accept
}
chain forward {
# Docker
iifname "docker0" accept
oifname "docker0" ct state established,related accept
}
}
$ docker pull debian:trixie $ docker images $ docker run --name debian-trixie -it debian:trixie bash $ docker rm debian-trixie
apache
Dockerfile
FROM debian:trixie
RUN apt update && \
apt install -y apache2 && \
rm -rf /var/lib/apt/lists/*
EXPOSE 80
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
$ docker build -t apache . $ docker run -d \ --name web \ -p 8080:80 \ apache