Docker容器管理工具
Docker容器管理工具
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
前面咱们介绍了chroot,namespace和cgroups,有了这三样Linux内置的模块就具备了基础的容器运行环境,但是还需要有相应的容器创建与删除的管理工具,以及怎么样把容器运行起来,容器数据怎么处理,进行启动与关闭等问题需要解决, 于是容器管理技术出现了。目前主要是使用docker容器管理工具 ,早期有使用lxc容器管理工具。
一.Linux Container(简称LXC)
1>.什么是LXC
LXC为 Linux Container Linux的简写。可以提供轻量级的虚拟化,一边隔离进程和资源。 博主推荐阅读: https://linuxcontainers.org/
2>.Ubuntu安装lxc工具
root@docker101:~# apt-get -y install lxc lxd Reading package lists... Done Building dependency tree Reading state information... Done lxd is already the newest version (3.0.3-0ubuntu1~18.04.1). lxd set to manually installed. The following additional packages will be installed: libpam-cgfs lxc-utils Suggested packages: lxc-templates lxctl The following NEW packages will be installed: libpam-cgfs lxc lxc-utils 0 upgraded, 3 newly installed, 0 to remove and 71 not upgraded. Need to get 390 kB of archives. After this operation, 1,316 kB of additional disk space will be used. Get:1 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 libpam-cgfs amd64 3.0.3-0ubuntu1~18.04.1 [29.8 kB] Get:2 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 lxc-utils amd64 3.0.3-0ubuntu1~18.04.1 [357 kB] Get:3 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 lxc all 3.0.3-0ubuntu1~18.04.1 [2,968 B] Fetched 390 kB in 0s (807 kB/s) Selecting previously unselected package libpam-cgfs. (Reading database ... 67286 files and directories currently installed.) Preparing to unpack .../libpam-cgfs_3.0.3-0ubuntu1~18.04.1_amd64.deb ... Unpacking libpam-cgfs (3.0.3-0ubuntu1~18.04.1) ... Selecting previously unselected package lxc-utils. Preparing to unpack .../lxc-utils_3.0.3-0ubuntu1~18.04.1_amd64.deb ... Unpacking lxc-utils (3.0.3-0ubuntu1~18.04.1) ... Selecting previously unselected package lxc. Preparing to unpack .../lxc_3.0.3-0ubuntu1~18.04.1_all.deb ... Unpacking lxc (3.0.3-0ubuntu1~18.04.1) ... Processing triggers for ureadahead (0.100.0-21) ... Setting up libpam-cgfs (3.0.3-0ubuntu1~18.04.1) ... Setting up lxc-utils (3.0.3-0ubuntu1~18.04.1) ... Created symlink /etc/systemd/system/multi-user.target.wants/lxc-net.service → /lib/systemd/system/lxc-net.service. Created symlink /etc/systemd/system/multi-user.target.wants/lxc.service → /lib/systemd/system/lxc.service. Setting up lxc dnsmasq configuration. Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Setting up lxc (3.0.3-0ubuntu1~18.04.1) ... root@docker101:~# root@docker101:~#
3>.检查内核对lxc的支持情况
root@docker101:~# lxc-checkconfig Kernel configuration not found at /proc/config.gz; searching... Kernel configuration found at /boot/config-4.15.0-74-generic --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled --- Control groups --- Cgroups: enabled Cgroup v1 mount points: /sys/fs/cgroup/systemd /sys/fs/cgroup/blkio /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/rdma /sys/fs/cgroup/freezer /sys/fs/cgroup/memory /sys/fs/cgroup/devices /sys/fs/cgroup/cpuset /sys/fs/cgroup/perf_event /sys/fs/cgroup/pids /sys/fs/cgroup/hugetlb /sys/fs/cgroup/net_cls,net_prio Cgroup v2 mount points: /sys/fs/cgroup/unified Cgroup v1 clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled, loaded Macvlan: enabled, not loaded Vlan: enabled, not loaded Bridges: enabled, loaded Advanced netfilter: enabled, not loaded CONFIG_NF_NAT_IPV4: enabled, loaded CONFIG_NF_NAT_IPV6: enabled, not loaded CONFIG_IP_NF_TARGET_MASQUERADE: enabled, loaded CONFIG_IP6_NF_TARGET_MASQUERADE: enabled, not loaded CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled, loaded CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled, not loaded FUSE (for use with lxcfs): enabled, not loaded --- Checkpoint/Restore --- checkpoint restore: enabled CONFIG_FHANDLE: enabled CONFIG_EVENTFD: enabled CONFIG_EPOLL: enabled CONFIG_UNIX_DIAG: enabled CONFIG_INET_DIAG: enabled CONFIG_PACKET_DIAG: enabled CONFIG_NETLINK_DIAG: enabled File capabilities: Note : Before booting a new kernel, you can check its configuration usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig root@docker101:~# root@docker101:~#