在 LXC 上安装 Alpine

来自 Alpine Linux

LXC

LXC 是一种操作系统级别的虚拟化方法,用于在控制主机上使用单个 Linux 内核运行多个隔离的 Linux 系统(容器)。

使用 LXC,您可以在容器中运行 Alpine Linux,并使用原生的 Alpine Linux 初始化系统 (openrc) 在其中启动服务。

本文档介绍如何在 LXC 容器上安装 Alpine Linux。

准备工作

LXC 安装

您需要在您的主机系统上安装 “lxc” 软件包。例如,在 Arch Linux 中,您可以通过运行以下命令安装:

# pacman -S lxc

桥接创建

您还需要在主机上创建网络桥接。

在 Arch Linux 或基于 Arch Linux 的系统中设置桥接

在 Ubuntu 或基于 Ubuntu 的系统中设置桥接

以下是如何使用 netctl 设置桥接的示例

复制示例文件 “bridge”

# cp /etc/netctl/examples/bridge /etc/netctl/myBridge

根据需要修改您的桥接配置文件(网络接口:eno1 和 tap0 当然是根据您的需要)

Contents of /etc/netctl/myBridge

Description="Bridge connection" Interface=br0 Connection=bridge BindsToInterfaces=(eno1 tap0) IP=dhcp

停止活动连接

# systemctl stop dhcpcd

启动您的桥接

# netctl start myBridge

您可能希望设置您的系统在启动时自动启动您的桥接。

容器创建

要安装 Alpine Linux edge 版本,请运行

# lxc-create --name alpine-edge -t alpine -- --release edge

您还可以配置共享目录,该目录将可以从主机和容器访问。在本示例中,我们将主机上的 /media/d 目录在容器中可用

# mkdir /var/lib/lxc/alpine-edge/rootfs/media/d

将以下行添加到容器的配置文件中

Contents of /var/lib/lxc/alpine-edge/config

... lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.mount.entry=/media/d media/d none bind 0 0

启动容器

# lxc-start -n alpine-edge

关闭容器

# lxc-stop -n alpine-edge

进入 Alpine Linux 控制台

# lxc-attach -n alpine-edge

容器设置

修改您的 apk/repositories 配置文件。建议包含 “main”、“testing” 和 “community” 仓库。

Contents of /etc/apk/repositories

http://dl-cdn.alpinelinux.org/alpine/edge/main http://dl-cdn.alpinelinux.org/alpine/edge/testing http://dl-cdn.alpinelinux.org/alpine/edge/community

升级您的 Alpine Linux 系统

# apk update && apk upgrade -a

启动服务

# /etc/init.d/service_name start

# rc-service service_name start

添加服务到自动启动

# rc-update add service_name

重启您的容器

reboot