相信吗?你可以五分钟搞定Linux容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

Linux容器针对特定工作负载提供了全新的灵活性与可能性。存在很多解决方案,但是没有一个解决方案能够像systemd容器那样进行快速部署。给我五分钟,本文将介绍如何使用由systemd-nspawn创建的systemd容器。

使用systemd-nspawn的最佳环境是运行CentOS 7.1及后续版本的测试系统。一定要使用最近的操作系统版本以确保systemd-nspawn运行环境达到最优。

systemd-nspawn需要使用一个目录用于容器的系统根目录。在本示例中我使用的是/var/lib/container目录。首先使用mkdir /var/lib/container命令创建相应的目录。

开始前,切换到SELinux是个好主意。或者至少使用setenforce Permissive命令设置为permissive模式。在systemd环境中更改密码要更简单,而且本文介绍的是systemd-nspawn,而不是SELinux。

接下来,需要在该根目录下安装最小的操作系统,yum -y --releaseserver=7Server --installroot=/var/lib/container/centos7 install systemd passwd yum redhat-release vim-minimal命令将会在/var/lib/container/centos7目录下安装操作系统。该命令确保需要的软件包被拷贝到已经指定的目录下。请注意示例安装的软件包数量是进行PoC测试的最低要求。安装yum软件包后,就可以增加所需要的其他软件包了。

在该目录下安装了所需要的软件包后,就可以启动容器了。首次尝试时,使用systemd-nspawn -D /var/lib/container/centos7 -b命令是一个不错的主意。这将会启动容器并要求你输入root密码。问题是还没有设置root密码。

这是因为位于chroot模式下。在chroot环境下,容器主机操作系统无法获取root用户的密码。因此,你唯一能做的就是打开另一个shell,然后中止systemd-nspawn进程。

为进入你刚刚登录的完整环境,需要在systemd-nspawn命令中增加passwd命令。执行该命令时禁用某些不必要的服务是个不错的主意。完整的命令如下所示:

 
 
  1. systemd-nspawn -D /var/lib/container/centos7 passwd; systemctl disable kdump postfix firewalld tuned 

现在,你可以在chroot环境下设置root密码了。然后返回主机操作系统的命令提示符。然后,就可以使用systemd nspawn -D /var/lib/container/centos7 -b命令了。

马上就可以看到一个立即就能使用、正在运行中的容器。可以使用systemd-analyze命令发现启动容器需要多长时间。在容器环境中,可以开始提供你想要的任何服务。为关闭计算机,可以像对待其他虚拟机一样,只需要输入shutdown或poweroff命令。

在本文中,你已经了解了如何使用systemd-nspawn创建Linux容器,如示例所示,并不需要做任何复杂的工作。默认需要的仅仅是最新操作系统的一部分。systemd-nspawn具备成为Linux容器解决方案市场重量级玩家的一切要素。





作者:Sander Van Vugt
来源:51CTO
目录
相关文章
|
5月前
|
Linux Docker 容器
Docker容器运行Linux
Docker容器运行Linux
|
7月前
|
关系型数据库 Linux 虚拟化
掌握Linux服务器管理技巧与容器化应用 - 从软件服务到虚拟化技术全面解析
掌握Linux服务器管理技巧与容器化应用 - 从软件服务到虚拟化技术全面解析
92 0
|
7月前
|
Ubuntu 关系型数据库 MySQL
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
|
17天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
28 0
|
5月前
|
存储 Linux Docker
跨cpu架构部署容器技术点:怎样修改Linux 的内核版本
在使用Docker 进行跨平台部署之后,我们还可以尝试进行跨架构部署。 从X86 架构上移植到 aarch64 上。
199 0
|
6月前
|
jenkins Linux 持续交付
聊聊Linux常用命令、Docker容器化、本地镜像仓库、GitLab私服、Jenkins自动化部署
聊聊Linux常用命令、Docker容器化、本地镜像仓库、GitLab私服、Jenkins自动化部署
120 0
|
2月前
|
Kubernetes Linux 开发工具
容器开发运维人员的 Linux 操作机配置优化建议
容器开发运维人员的 Linux 操作机配置优化建议
|
3月前
|
存储 Linux 网络安全
Linux(CentOs7) --- 安装Docker容器
Linux(CentOs7) --- 安装Docker容器
175 1
|
4月前
|
Java 调度 Docker
Docker【应用 01】Spring Boot 项目部署在Linux环境下的Docker容器内举例(任务调度系统 xxl-job 任务调度中心)(手动版)
Docker【应用 01】Spring Boot 项目部署在Linux环境下的Docker容器内举例(任务调度系统 xxl-job 任务调度中心)(手动版)
71 0
|
4月前
|
Ubuntu Linux 编译器
arm-linux-gcc交叉编译容器 centos7 环境
arm-linux-gcc交叉编译容器 centos7 环境
111 1