Welcome to the Linux Foundation Forum!

Lab 16.1 LXC on CentOS 7 - container will not start

I've successfully progressed to point 8 in Lab 16.1 - 'Start the container' (there were a few errors with the instructions that I've noted below in 'Additional Steps') but have ran into an error when trying to start the container.

At this point when I execute lxc-start -n bucket an error is returned.

lxc_container: lxc_start.c: main: 290 Executing '/sbin/init' with no configuration file may crash the host

The result is that the process exits and their is no trace left of the container.

The container is not listed when executing lxc-ls -f

Attempting to destroy the container and start from 16.1.1

$ lxc-destroy -n bucket
Container is not defined

Additional Steps (CentOS7)

  • lxc-ls is not bundled with lxc, it is part of the lxc-extra package. This package is not listed to be installed in 16.1.1

Answers

  • lee42x
    lee42x Posts: 380
    edited September 2020

    Hi GRO108,

    Sorry for missing the CentOS7 "lxc-extra" package, that will get fixed.

    Now your issue with the containers, puzzling as I just did the steps 16-1 through 16-9 on my CentoOS7 VM. Were you successful with step 16-6? Are you executing the lxc commands as root or regular user? Which kernel are you using on the base machine running the containers?

    Here is an example of mine using the lxc-ls command.

    [student@centos ~]$ lxc-ls -f

    NAME STATE IPV4 IPV6 AUTOSTART

    [student@centos ~]$
    [student@centos ~]$ sudo lxc-ls -f

    NAME STATE IPV4 IPV6 AUTOSTART

    bucket RUNNING 192.168.124.248 - NO
    bucket1 STOPPED - - NO
    bucket8 RUNNING 192.168.124.199 - NO
    [student@centos ~]$

  • Hi @lee42x ,

    I've gone back over the steps and realised I've missed step 4. (I have added the file /etc/sysconfig/lxc-net)

    Start the LXC network service and make it start on initialization automatically.
    # systemctl enable --now lxc-net

    When I execute that I receive the error.

    Failed to execute operation: No such file or directory

    I checked my unit files and noticed that lxc was not enabled so I did that.

    $ sudo systemctl enable --now lxc
    $ sudo systemctl daemon-reload
    $ systemctl list-unit-files --state=enabled | grep lxc
    lxc.service                                enabled
    

    I had a dig around for any packages or manual references for lxc-net and didn't come across any.

    My kernel (of the host) is: Linux version 3.10.0-1127.10.1.el7.x86_64

  • lee42x
    lee42x Posts: 380

    Here is a reference for lxc-net, scroll down to the "independent bridge setup" :
    [https://wiki.debian.org/LXC#Networking_Essentials]

    This file instructs lxc to create a Linux network bridge. An independent bridge is used so the class does not conflict with any existing networking on your system.

    Regards Lee

  • Hello all,
    I've got the same mistake (CentOS7/kernel 3.10) --- > systemctl enable lxc-net --> Failed to execute operation: No such file or directory. I will use the "independent bridge setup". thank you for the link. I suggest correcting the lab :)

    Regards

  • rranay
    rranay Posts: 6

    I really think this lab needs to be re-written. Even with the suggestion offered by GRO 108 and following the "independent bridge setup" i still couldn't get it to work. I keep getting the Failed to execute operation: No such file or directory.

  • lee42x
    lee42x Posts: 380

    Looking into this. Please confirm distribution and version.

  • lee42x
    lee42x Posts: 380

    In solution 16.1 there are specific insructions for CentOS7 to address the "lxc-net not installed" issue. Both CentOS8 and Ubuntu20.04 do have "lxc-net".

  • rranay
    rranay Posts: 6

    Yep, I followed the instruction for the CentOS7. I ended up just using a fresh install of CentOS 8 and do the rest of the lab. By the way, I was using the CentOS7 image that's found in this site. I haven't tried on a freshly installed CentOS 7 yet; if time permits I'd do that. I just wanted to go through the lab and see how things work.

  • lee42x
    lee42x Posts: 380

    Some updates that may help:
    16.1.1.a make sure lxc is installed
    yum install lxc*
    16.1.1.b right before step c, restart libvirtd so the bridge shows up
    systemctl restart libvirtd
    16.1.1.d restart NetworkManager, because we added a dropin file
    systemctl restart NetworkManager
    16.1.1.e stop the firewall
    systemctl disable --now firewalld

    The takeaway, if you change a configuration file restart the related service.
    Let me know if that sorts out the issue you are seeing.

    Work performed on VMware Player and CentOS-7.

  • lee42x
    lee42x Posts: 380

    Please post your /etc/lxc/default.conf file.
    Thank you.

  • rranay
    rranay Posts: 6

    I've gotten around to do a fresh install of CentOS7. And definitely the restart of libvirtd and NetManager most certainly did the trick and there is no need for the lxc-net as the lab instructed.

    Here's my /etc/lxc/default.conf:
    lxc.network.type = veth
    lxc.network.link = virbr0
    lxc.network.flags = up

Categories

Upcoming Training