Docker从认识到实践再到底层原理(二-3)|LXC容器

在这里插入图片描述

前言

那么这里博主先安利一些干货满满的专栏了!

首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。

  • 高质量博客汇总

然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注!

  • Docker从认识到实践再到底层原理

LXC

LXC (LinuX Containers) Linux容器,一种操作系统层虚拟化技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器 (Container)内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享 API 来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境使得 Linux 用户可以容易的创建和管理系统或应用容器。

LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了容器技术使用的一个方案

LXC 虽然极大的简化了容器技术的使用,但比起直接通过内核调用来使用容器技术其复杂程度其实并没有多大降低,因为我们必须要学会 LXC 的一组命令工具,且由于内核的创建都是通过命令来实现的,通过批量命令实现数据迁移并不容易。其隔离性也没有虚拟机那么强大。

后来就出现了 docker,所以从一定程度上来说,docker就是 LXC 的增强版。

lxc-checkconfig

检查系统环境是否满足容器使用要求。

lxc-create

创建lxc容器

lxc-create -n NAME -t TEMPLATE_NAME [--template-options]

lxc-start

lxc-start -n NAME -d # 启动容器

lxc-ls

lxc-ls -f # 列出所有的容器 -f 表示打印常用的信息

lxc-info

lxc-info -n NAME # 查看容器相关的信息

lxc-attach

进入容器

lxc-attach --name=NAME [--COMMAND]

lxc-stop

lxc -stop -n NAME # 停止容器

lxc-destroy

lxc-destroy -n NAME # 删除处于停机状态的容器

lxc的安装

https://www.mryunwei.com/294151.html

lxc容器实战

检查lxc运行状态。

[root@ALiCentos7:/home/yufc]$ systemctl status lxc
● lxc.service - LXC Container Initialization and Autoboot CodeLoaded: loaded (/usr/lib/systemd/system/lxc.service; disabled; vendor preset: disabled)Active: active (exited) since Thu 2023-08-31 22:06:05 CST; 2min 56s agoProcess: 5141 ExecStart=/usr/libexec/lxc/lxc-autostart-helper start (code=exited, status=0/SUCCESS)Process: 5134 ExecStartPre=/usr/libexec/lxc/lxc-devsetup (code=exited, status=0/SUCCESS)Main PID: 5141 (code=exited, status=0/SUCCESS)Tasks: 0Memory: 0BCGroup: /system.slice/lxc.serviceAug 31 22:05:34 ALiCentos7 systemd[1]: Starting LXC Container Initialization and Autoboot Code...
Aug 31 22:05:34 ALiCentos7 lxc-devsetup[5134]: Creating /dev/.lxc
Aug 31 22:05:34 ALiCentos7 lxc-devsetup[5134]: /dev is devtmpfs
Aug 31 22:05:34 ALiCentos7 lxc-devsetup[5134]: Creating /dev/.lxc/user
Aug 31 22:06:04 ALiCentos7 lxc-autostart-helper[5141]: Starting LXC autoboot containers:  [  OK  ]
Aug 31 22:06:05 ALiCentos7 systemd[1]: Started LXC Container Initialization and Autoboot Code.
[root@ALiCentos7:/home/yufc]$ 

检查系统环境是否满足容器使用要求。

[root@ALiCentos7:/home/yufc]$ lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.10.0-1160.88.1.el7.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Warning: newuidmap is not setuid-root
Warning: newgidmap is not setuid-root
Network namespace: enabled
Multiple /dev/pts instances: enabled--- Control groups ---
Cgroup: enabled
Cgroup 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
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
CONFIG_NF_NAT_IPV4: enabled
CONFIG_NF_NAT_IPV6: enabled
CONFIG_IP_NF_TARGET_MASQUERADE: enabled
CONFIG_IP6_NF_TARGET_MASQUERADE: enabled
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled--- 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: enabledNote : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig[root@ALiCentos7:/home/yufc]$

查看lxc提供的容器模版。

[root@ALiCentos7:/home/yufc]$ ls /usr/share/lxc/templates/
lxc-alpine     lxc-busybox  lxc-debian    lxc-gentoo        lxc-oracle  lxc-ubuntu
lxc-altlinux   lxc-centos   lxc-download  lxc-openmandriva  lxc-plamo   lxc-ubuntu-cloud
lxc-archlinux  lxc-cirros   lxc-fedora    lxc-opensuse      lxc-sshd
[root@ALiCentos7:/home/yufc]$

都有这么一些模版。

创建一个ubuntu的容器。

lxc-create -t ubuntu --name lxchost1 -- -r xenial -a amd64

安装好之后,lxc-ls

[root@ALiCentos7:/home/yufc]$ lxc-ls -f
NAME      STATE    IPV4  IPV6  AUTOSTART  
----------------------------------------
lxchost1  STOPPED  -     -     NO         
[root@ALiCentos7:/home/yufc]$

启动这个容器。

[root@ALiCentos7:/home/yufc]$ lxc-start -n lxchost1 -d # 让他后台运行
[root@ALiCentos7:/home/yufc]$ lxc-ls -f
NAME      STATE    IPV4  IPV6  AUTOSTART  
----------------------------------------
lxchost1  RUNNING  -     -     NO         
[root@ALiCentos7:/home/yufc]$

查看这个容器的信息。

[root@ALiCentos7:/home/yufc]$ lxc-info -n lxchost1
Name:           lxchost1
State:          RUNNING
PID:            12901
IP:             192.168.122.244 # 通过这个IP地址,我们可以ssh连接这个容器
CPU use:        0.06 seconds
BlkIO use:      7.29 MiB
Memory use:     7.71 MiB
KMem use:       0 bytes
Link:           vethM2V3M1TX bytes:      2.02 KiBRX bytes:      4.12 KiBTotal bytes:   6.14 KiB
[root@ALiCentos7:/home/yufc]$

我们有了这个IP地址之后,可以通过ssh的方法,或者lxc-attach的方法连接这个容器。

[root@ALiCentos7:/home/yufc]$ ssh ubuntu@192.168.122.244
The authenticity of host '192.168.122.244 (192.168.122.244)' can't be established.
ECDSA key fingerprint is SHA256:QQF2a8Od/77dtoGj3sDMJMwP4rWIrJRuMFRIu1ofWmw.
ECDSA key fingerprint is MD5:da:54:c2:47:fb:24:ef:fa:fc:49:c0:c3:53:f2:c3:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.122.244' (ECDSA) to the list of known hosts.
ubuntu@192.168.122.244's password: 
Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 3.10.0-1160.88.1.el7.x86_64 x86_64)* Documentation:  https://help.ubuntu.com* Management:     https://landscape.canonical.com* Support:        https://ubuntu.com/advantageThe programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.ubuntu@lxchost1:~$ # 此时发现,我们的bash已经发生了变化!这里面就是一个容器!!!

此时发现,我们的bash已经发生了变化!这里面就是一个容器!!!

在这里插入图片描述

通过第二种方式:lxc-attach的方式。

lxc-attach -n lxchost1 --clear-env -- /bin/bash

这种方式也是可以的。
在这里插入图片描述
停止这个容器。

lxc-stop -n lxchost1

删除这个容器。

lxc-destroy -n lxchost1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/116721.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RISC-V(2)——特权级及特权指令集

目录 1. 特权级 2. 控制和状态寄存器&#xff08;CSR&#xff09; 2.1 分类 2.2 分析 1. 特权级 一个 RISC-V 硬件线程&#xff08;hart&#xff09;是运行在某个特权级上的&#xff0c;这个特权级被编码到一个或者多个 CSR&#xff08;control and status register&a…

研华I/O板卡 Win10+Qt+Cmake 开发环境搭建

文章目录 一.研华I/O板卡 Win10QtCmake 开发环境搭建 一.研华I/O板卡 Win10QtCmake 开发环境搭建 参考这个链接安装研华I/O板卡驱动程序系统环境变量添加研华板卡dll Qt新建一个c项目 cmakeList.txt中添加研华库文件 cmake_minimum_required(VERSION 3.5)project(advantechDA…

Unity 之 方括号[ ] 的用法以及作用

文章目录 在Unity中&#xff0c;方括号 [ ] 通常用于表示属性、特性&#xff08;Attributes&#xff09;或者元数据&#xff08;Metadata&#xff09;。这些标记提供了附加信息&#xff0c;可以用于修改类、方法、字段等的行为或者在编辑器中进行设置。 以下是一些常见的用法&…

【Sprig AOP】

目录 &#x1f957;1 AOP 的思想 &#x1f35a;2 AOP 的组成 &#x1f95a;2.1 切面 &#x1f359;3 AOP 的实现 &#x1f364;3.1 添加 Spring AOP 依赖 &#x1f96b;3.2 定义切面 &#x1f363;3.3 定义切点 &#x1f373;3.4 实现通知 &#x1f354;4 AOP 实现的一个例子 1…

ui网页设计实训心得

ui网页设计实训心得篇一 通过这次实训对这门课程的学习&#xff0c;做好网页&#xff0c;并不是一件容易的事&#xff0c;它包括网页的选题、 内容采集整理、 图片的处理、 页面的排版设置、 背景及其整套网页的色调等很多东西。 所以我得出一下总结&#xff1a; 一、 准备资…

Linux上git的简单使用

git的作用&#xff1a;版本控制多人协作 客户端 磁盘上的文件-->本地仓库-->远端仓库 服务端 gitee和GitHub是基于git的商业化网站 git的命令行如何使用&#xff1f; 1、新建一个仓库 .git ignore 是忽略带有某些后缀的文件的上传。 例如&#xff1a;里面有 .sln …

输出归一化位置式PID(完整梯形图代码)

SMART PLC单自由度和双自由度位置式PID的完整源代码,请参看下面文章链接: 位置式PID(S7-200SMART 单自由度、双自由度梯形图源代码)_RXXW_Dor的博客-CSDN博客有关位置型PID和增量型PID的更多详细介绍请参看PID专栏的相关文章,链接如下:SMART PLC增量型PID算法和梯形图代码…

【深入浅出设计模式--状态模式】

深入浅出设计模式--状态模式 一、背景二、问题三、解决方案四、 适用场景总结五、后记 一、背景 状态模式是一种行为设计模式&#xff0c;让你能在一个对象的内部状态变化时改变其行为&#xff0c;使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧密相关&#x…

41、springboot 整合 FreeMarker 模版技术

springboot 整合 FreeMarker 模版技术 ★ 整合FreeMarker的自动配置&#xff1a; FreeMarkerAutoConfiguration&#xff1a;负责整合Spring容器和获取FreeMarkerProperties加载的配置信息。FreeMarkerServletWebConfiguration/FreeMarkerReactiveWebConfiguration&#xff1a…

【Java核心知识】ThreadLocal相关知识

ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量&#xff0c;该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap&#xff0c;key为变量的name&#xff0c;value为变量的值。 在日常使用中&#xff0c;我们可以通…

数据结构——树

树 树的概念&#xff1a; 图1 图2 图1中是我们现实生活中的树&#xff0c;根在下&#xff0c;叶子和分支在上&#xff0c;而在计算机中的树是图二中的样子&#xff0c;也就是现实生活中的树倒过来的样子&…

Vue学习笔记一(2019)

1.Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器&#xff0c;它包含着你的应用…

android 输入法demo

背景&#xff1a; 一个简单的android输入法demo&#xff0c;支持输入png、gif&#xff0c;jpeg、webp等格式。 此示例演示如何编写一个应用程序&#xff0c;该应用程序接受使用 Commit Content API 从键盘发送的丰富内容&#xff08;例如图像&#xff09;。 用户通常希望通过表…

day-03 基于TCP的服务器端/客户端

一.理解TCP和UDP TCP&#xff08;Transmission Control Protocol&#xff09;和UDP&#xff08;User Datagram Protocol&#xff09;是两种常见的传输层协议&#xff0c;用于在计算机网络中提供可靠的数据传输。 1.TCP&#xff1a; 连接导向&#xff1a;TCP是一种面向连接的…

Android 蓝牙开发( 四 )

前言 上一篇文章给大家分享了Kotlin版的Android蓝牙的基础知识和基础用法&#xff0c;不过上一篇都是一些零散碎片化的程序&#xff0c;&#xff0c;这一篇给大家分享Android蓝牙开发实战项目KotlinCompose的初步使用 效果演示 : Android Compose 蓝牙开发 Android蓝牙实战开发…

Sqoop实操案例-互联网招聘数据迁移

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

【实操干货】如何开始用Qt Widgets编程?(四)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 在本文中&#xff0…

Android 蓝牙开发( 二 )

前言 上一篇文章给大家分享了Android蓝牙的基础知识和基础用法&#xff0c;不过上一篇都是一些零散碎片化的程序&#xff0c;这一篇给大家分享Android蓝牙开发实战项目的初步使用 效果演示 : Android蓝牙搜索&#xff0c;配对&#xff0c;连接&#xff0c;通信 Android蓝牙实…

数据分析师职业发展道路,工作内容是什么?

很多同学问&#xff0c;参加数据分析就业班后之的就业发展道路是怎样的&#xff0c;工作又能做什么呢&#xff1f; 市面上的常见的工作类型有有运营类、技术类及分析类等&#xff0c;可以根据自己的意愿去做适合自己的工作&#xff0c;但是任何工作其实都是需要一技之长。…

基于实例的学习方法

基于实例的学习方法 动机基本概念基于实例的学习基于实例的概念表示 1. 最近邻最近邻的例子理论结果最近邻&#xff08;1- NN&#xff09;:解释问题 K-近邻(KNN)KNN讨论1 &#xff1a;距离度量KNN 讨论2&#xff1a;属性KNN:属性归一化KNN:属性加权 KNN讨论3:连续取值目标函数K…