ラベル Docker の投稿を表示しています。 すべての投稿を表示
ラベル Docker の投稿を表示しています。 すべての投稿を表示

X11サーバを共有する特権dockerコンテナの作成例

docker run -it --network=host --env DISPLAY=$DISPLAY -v ${HOME}/.Xauthority:/root/.Xauthority -v /store:/store -v /tmp/.X11-unix:/tmp/.X11-unix --privileged debian:12 bash

LXCコンテナの中でDockerを使用するための設定

/var/lib/lxc/[container名]/configに以下の設定を追加し、コンテナを(再)起動する。

なるべく安全な方法

lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1

とにかく権限を与える方法

上記で駄目な場合、以下ならほとんどのケースで起動可能。上記にlxc.cap.drop =を加えて、Dockerを起動できる場合もあり。
lxc.apparmor.profile = unconfined
lxc.cgroup.devices.allow = a
lxc.cap.drop =

Dockerコンテナに手動でvethインターフェスを追加する

vethペア作成

VETH0=veth-a1
VETH1=veth-b1
ip link add $VETH0 type veth peer name $VETH1
vethの片方をホストのbridgeに接続
sudo brctl addif br0 $VETH0
sudo ip link set $VETH0 up

Dockerコンテナを起動

コンテナを--network noneで起動する。NAMEの右辺(コンテナ名)は適宜変更可。
NAME=container
docker run --network none --rm -it --name $NAME debian 

ipコマンドのため、コンテナのnetnsを/var/run/netns以下にリンク

(CONTAINER_PID=`docker inspect $NAME --format '{{.State.Pid}}'` && sudo ln -s /proc/$CONTAINER_PID/ns/net /var/run/netns/$NAME)

コンテナにvethを設置し、IPアドレスを設定

CONTAINER_IP=192.168.19.11
CONTAINER_IP_PREFIX=24
sudo ip link set $VETH1 netns $NAME up
sudo ip netns exec $NAME ip addr add $CONTAINER_IP/$CONTAINER_IP_PREFIX dev $VETH1
/proc/sys/net/bridge/bridge-nf-call-iptablesが1で、かつ、iptablesのFORWARDチェーンのポリシーがDROPなら、次の設定も必要
iptables -A FORWARD -s $CONTAINER_IP -j ACCEPT
iptables -A FORWARD -d $CONTAINER_IP -j ACCEPT
あるいは、
iptables -A FORWARD -m physdev --physdev-in $VETH0 -j ACCEPT
iptables -A FORWARD -m physdev --physdev-out $VETH0 -j ACCEPT

Ubuntu 18.04のDockerでUser remapを使う

/etc/docker/daemon.jsonに次の記述を加える
{
  "userns-remap": "default"
}
/etc/subuidと/etc/subgidに以下の記述を追加する。 それぞれ、ホストでのUser ID (Group ID)の0-65535が、それぞれ、コンテナ上での100000-165535にマップされる。 100000の部分は、適宜変更してもよい。上記のuserns-remapで指定した値と、下記の一番左側の文字列が対応するが、defaultの場合は、標準のdockremap行の値が使用される。
dockremap:100000:65536
そのあとは、docker daemonを再起動
# systemctl restart docker

Debian7でDockerを使う

インストールは、このサイトを参照すればOK。
Dockerの基本操作については、 このページが役立つ。