LXC 的進階專案 LXD 提供 Container Image Repository,可以直接抓需要的 Linux Distribution。
這份筆記紀錄在 LXC 產生 CentOS 6 Container 的方式。
Note] 由於 RHEL 6 會在 11/30/2020 EOL,不能確定到時是否 Repository 是否還會提供
這邊示範的方法,是透過既有的 LXC centos Template,直接指定 OS 版本,就可以下載。
[user@labenv-lxc ~]$ sudo lxc-create -n centos6 -t centos -- --help Host CPE ID from /etc/os-release: cpe:/o:centos:centos:7 usage: /usr/share/lxc/templates/lxc-centos -n|--name=[-p|--path= ] [-c|--clean] [-R|--release= ] [-a|--arch= ] [-h|--help] Mandatory args: -n,--name container name, used to as an identifier for that container from now on Optional args: -p,--path path to where the container rootfs will be created, defaults to /var/lib/lxc/name. -c,--clean clean the cache -R,--release CentOS release for the new container. If the host is CentOS, then it will default to the host's release. --fqdn fully qualified domain name (FQDN) for DNS and system naming --repo repository to use (url) -a,--arch Define what arch the container will be [i686,x86_64] -h,--help print this help [user@labenv-lxc ~]$ sudo lxc-create -n centos_6 -t centos -- -R 6 Host CPE ID from /etc/os-release: cpe:/o:centos:centos:7 Checking cache download in /var/cache/lxc/centos/x86_64/6/rootfs ... Downloading CentOS minimal ... Loaded plugins: fastestmirror Determining fastest mirrors * base: repos-va.psychz.net * updates: repos-va.psychz.net base | 3.7 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/3): base/group_gz | 242 kB 00:00:00 (2/3): base/primary_db | 4.7 MB 00:00:00 (3/3): updates/primary_db | 3.0 MB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package chkconfig.x86_64 0:1.3.49.5-1.el6 will be installed --> Processing Dependency: rtld(GNU_HASH) for package: chkconfig-1.3.49.5-1.el6.x86_64 --> Processing Dependency: libpopt.so.0(LIBPOPT_0)(64bit) for package: chkconfig-1.3.49.5-1.el6.x86_64 . . . 中間略 . . . xz-libs.x86_64 0:4.999.9-0.5.beta.20091007git.el6 yum-metadata-parser.x86_64 0:1.1.2-16.el6 yum-plugin-fastestmirror.noarch 0:1.1.30-42.el6_10 zlib.x86_64 0:1.2.3-29.el6 Complete! Download complete. Copy /var/cache/lxc/centos/x86_64/6/rootfs to /var/lib/lxc/centos_6/rootfs ... Copying rootfs to /var/lib/lxc/centos_6/rootfs ... Storing root password in '/var/lib/lxc/centos_6/tmp_root_pass' Expiring password for user root. passwd: Success Container rootfs and config have been created. Edit the config file to check/enable networking setup. The temporary root password is stored in: '/var/lib/lxc/centos_6/tmp_root_pass' The root password is set up as expired and will require it to be changed at first login, which you should do as soon as possible. If you lose the root password or wish to change it without starting the container, you can change it from the host by running the following command (which will also reset the expired flag): chroot /var/lib/lxc/centos_6/rootfs passwd [user@labenv-lxc ~]$
把必要的設定補上
[user@labenv-lxc ~]$ sudo tee -a /var/lib/lxc/centos_6/config << EOF # Manual Setting lxc.network.ipv4 = 192.168.68.14/24 lxc.network.ipv4.gateway = 192.168.68.10 lxc.start.auto = 1 # Fix some portential journald high CPU consumption #lxc.kmsg = 0 EOF [user@labenv-lxc ~]$ sudo sh -c "echo 'nameserver 192.168.68.10' >> /var/lib/lxc/centos_6/rootfs/etc/resolv.conf" [user@labenv-lxc ~]$ sudo chroot /var/lib/lxc/centos_6/rootfs passwd Changing password for user root. New password: root BAD PASSWORD: it is too short BAD PASSWORD: is too simple Retype new password: root passwd: all authentication tokens updated successfully. [user@labenv-lxc ~]$
[user@labenv-lxc ~]$ sudo ./envlogin.sh centos_6 Connected to tty 0 Typeto exit the console, to enter Ctrl+a itself ↲ CentOS release 6.10 (Final) Kernel 3.10.0-957.5.1.el7.x86_64 on an x86_64 centos_6 login: root Password: root [root@centos_6 ~]# [root@centos_6 ~]# ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 18: eth0@if19: mtu 1500 qdisc noqueue state UP qlen 1000 link/ether fe:e8:b4:2f:95:c6 brd ff:ff:ff:ff:ff:ff inet 192.168.68.35/24 brd 192.168.68.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::fce8:b4ff:fe2f:95c6/64 scope link valid_lft forever preferred_lft forever [root@centos_6 ~]# [root@centos_6 ~]# ping www.google.com PING www.google.com (173.194.197.105) 56(84) bytes of data. 64 bytes from iy-in-f105.1e100.net (173.194.197.105): icmp_seq=1 ttl=51 time=0.863 ms 64 bytes from iy-in-f105.1e100.net (173.194.197.105): icmp_seq=2 ttl=51 time=0.587 ms ^C --- www.google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1453ms rtt min/avg/max/mdev = 0.587/0.725/0.863/0.138 ms [root@centos_6 ~]#
這樣就 OK 了~
若需要從 https://us.images.linuxcontainers.org/ 下載 Image,則換成使用 download Template 即可。可以參考之前在 Slackware 示範過的內容。
沒有留言:
張貼留言