Slide 17
Slide 17 text
© SIOS Technology, Inc. All rights Reserved.
コンテナとは︖
17
Internal Only
参考︓コンテナ技術⼊⾨
https://employment.en-japan.com/engineerhub/entry/2019/02/05/103000
$ ROOTFS=$(mktemp -d)
$ CID=$(sudo docker container create centos:centos7)
$ sudo docker container export $CID | tar -x -C $ROOTFS
$ ln -s /usr/local/bin/bash $ROOTFS/bin/bash
$ sudo docker container rm $CID
$ UUID=$(uuidgen)
$ sudo cgcreate -t $(id -un):$(id -gn) -a $(id -un):$(id -gn) -g cpu,memory:$UUID
$ cgset -r memory.limit_in_bytes=10000000 $UUID
$ cgset -r cpu.cfs_period_us=1000000 $UUID
$ cgset -r cpu.cfs_quota_us=300000 $UUID
$ CMD="/bin/sh"
$ cgexec -g cpu,memory:$UUID \
unshare -muinpfr /bin/sh -c "
mount -t proc proc $ROOTFS/proc &&
touch $ROOTFS$(tty); mount --bind $(tty) $ROOTFS$(tty) &&
touch $ROOTFS/dev/pts/ptmx; mount --bind /dev/pts/ptmx $ROOTFS/dev/pts/ptmx &&
ln -sf /dev/pts/ptmx $ROOTFS/dev/ptmx &&
touch $ROOTFS/dev/null && mount --bind /dev/null $ROOTFS/dev/null &&
/bin/hostname $UUID &&
exec capsh --chroot=$ROOTFS --drop=cap_sys_chroot -- -c 'exec $CMD'
"
ファイルシステムやユーザー空間まで分けた実⽤的なCentOS7のnamespace(コ
ンテナ)を作ります。