環境
Windowsで動くVirtualBox上のGentooLinux(systemd使用)
手順概略
- app-emulation/docker を emerge する
- dockerグループにいつも使うユーザーを追加する
- kernel のオプションが諸々必要らしいので kernelを再構築する
- 再起動して systemctl start docker
- 具合良ければ systemctl enable docker
手順
dockerという名前はいくつかあるので、app-emulationを指定しないと入らない。
$ sudo emerge -av app-emulation/docker
手前の環境だと12個くらいの依存の元何の問題もなく入る。
docker グループにユーザーを追加するといいよ、と後はカーネルオプション諸々を有効にする旨表示されるのでそれに従う。
$ sudo gpasswd -a <user> docker
# カーネルのバージョン確認。手間の環境の場合新しくなっていた。。
$ eselect kernel list
Available kernel symlink targets:
[1] linux-4.14.65-gentoo *
$ sudo eselect kernel set 1
$ cd /usr/src/linux
$ sudo make menuconfig
...
$ sudo make
$ sudo mount /boot
$ sudo make modules_install && make install
$ sudo grub-mkconfig -o /boot/grub.cfg
$ subo reboot
で一旦再起動。
$ sudo systemctl start docker
で問題なく起動できたら
$ sudo systemctl enable docker
としておく。
有効にするらしいカーネルのオプションはemerge時に書いてあったけど改めてメモ。
たくさんあるので、menuconfigで探しながら有効にしていきましょう。。。
* - NAMESPACES
* - NET_NS
* - PID_NS
* - IPC_NS
* - UTS_NS
* - CGROUPS
* - CGROUP_CPUACCT
* - CGROUP_DEVICE
* - CGROUP_FREEZER
* - CGROUP_SCHED
* - CPUSETS
* - MEMCG
* - KEYS - CONFIG_KEYS: is mandatory
* - VETH
* - BRIDGE
* - BRIDGE_NETFILTER
* - NF_NAT_IPV4
* - IP_NF_FILTER
* - IP_NF_TARGET_MASQUERADE
* - NETFILTER_XT_MATCH_ADDRTYPE
* - NETFILTER_XT_MATCH_CONNTRACK
* - NETFILTER_XT_MATCH_IPVS
* - IP_NF_NAT
* - NF_NAT
* - NF_NAT_NEEDED
* - POSIX_MQUEUE
* - USER_NS
* - SECCOMP
* - CGROUP_PIDS
* - MEMCG_SWAP - CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers
* - MEMCG_SWAP_ENABLED
* - BLK_CGROUP - CONFIG_BLK_CGROUP: is optional for container statistics gathering
* - BLK_DEV_THROTTLING
* - IOSCHED_CFQ - CONFIG_IOSCHED_CFQ: is optional for container statistics gathering
* - CFQ_GROUP_IOSCHED
* - CGROUP_PERF - CONFIG_CGROUP_PERF: is optional for container statistics gathering
* - CGROUP_HUGETLB
* - NET_CLS_CGROUP
* - CFS_BANDWIDTH - CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering
* - FAIR_GROUP_SCHED
* - RT_GROUP_SCHED
* - IP_VS
* - IP_VS_PROTO_TCP
* - IP_VS_PROTO_UDP
* - IP_VS_NFCT
* - IP_VS_RR
* - VXLAN
* - CRYPTO
* - CRYPTO_AEAD
* - CRYPTO_GCM
* - CRYPTO_SEQIV
* - CRYPTO_GHASH
* - XFRM_ALGO - CONFIG_XFRM_ALGO: is optional for secure networks
* - XFRM_USER - CONFIG_XFRM_USER: is optional for secure networks
* - IPVLAN
* - MACVLAN
* - DUMMY
* - CGROUP_NET_PRIO
* - BLK_DEV_DM
* - DM_THIN_PROVISIONING
* - EXT4_FS
* - EXT4_FS_POSIX_ACL
* - EXT4_FS_SECURITY
* - OVERLAY_FS
* - EXT4_FS_SECURITY
* - EXT4_FS_POSIX_ACL
トラブル
kernelのオプションを有効にしたものの make install を忘れてkernelが更新されてなかったときに出ていたエラー。
解決まで無駄に時間がかかってしまった。。。
level=error msg="[graphdriver] prior storage driver devicemapper failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed"