成都创新互联网站制作重庆分公司

linuxlxc命令 linux中ll命令用法

如何使用RHEL/CentOS 7安装创建和管理LXC

CentOS7.0中一个最主要的改变,就是切换到了systemd。它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理。systemd兼容SysV和Linux标准组的启动脚本。Systemd是一个Linux操作系统下的系统和服务管理器。它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑。先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL7/CentOS7中,这些启动脚本被服务单元取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途。要查看、启动、停止、重启、启用或者禁用系统服务,你要使用systemctl来代替旧的service命令。注:为了向后兼容,旧的service命令在CentOS7中仍然可用,它会重定向所有命令到新的systemctl工具。使用systemctl来启动/停止/重启服务要启动一个服务,你需要使用如下命令:#systemctlstarthttpd.service这会启动httpd服务,就我们而言,ApacheHTTP服务器。要停掉它,需要以root身份使用该命令:#systemctlstophttpd.service要重启,你可以使用restart选项,如果服务在运行中,它将重启服务;如果服务不在运行中,它将会启动。你也可以使用try-start选项,它只会在服务已经在运行中的时候重启服务。同时,reload选项你也可以有,它会重新加载配置文件。#systemctlrestarthttpd.service#systemctltry-restarthttpd.service#systemctlreloadhttpd.service我们例子中的命令看起来会像下面这样:检查服务状态要检查服务状态,你可以使用status选项,看这里:#systemctlstatushttpd.service输出结果就像这样:它会告诉你运行中的服务的方方面面。使用启用/禁用服务来控制开机启动你也可以使用enable/disable选项来控制一个服务是否开机启动,命令如下:#systemctlenablehttpd.service#systemctldisablehttpd.service

睢阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

如何在Ubuntu上创建及管理LXC容器

将LXC安装到Ubuntu上

想在Ubuntu上使用LXC,就要安装LXC用户空间工具,如下所示。

$ sudo apt-get install lxc

安装完毕之后,运行lxc-checkconifg工具,检查当前Linux内核支持LXC的情况。要是一切都已被启用,内核对LXC的支持已准备就绪。

$ lxc-checkconfig

安装LXC工具后,你会发现,LXC的默认网桥接口(lxcbr0)已自动创建(已在/etc/lxc/default.conf中加以配置)。

创建LXC容器后,窗口的接口就会自动连接到该网桥,那样容器就能与外界进行联系了。

创建LXC容器

为了能够创建某个特定目标环境(比如Debian Wheezy 64位)的LXC容器,你就需要一个相应的LXC模板。幸运的是,Ubuntu上的LXC用户空间工具随带一系列预先准备好的LXC模板。你可以在/usr/share/lxc/templates目录下找到可用的LXC模板。

$ ls /usr/share/lxc/templates

LXC模板其实就是一段脚本而已,用来为某个特定的Linux环境创建容器。你在创建LXC容器时,需要用到这其中一个模板。

比如说,为了创建Ubuntu容器,使用下面这个命令行:

$ sudo lxc-create -n -t ubuntu

默认情况下,它会创建与本地主机同一版本号和同一架构的最小Ubuntu安装系统,这种情况下是Saucy Salamander(13.10)64位。

如果你希望,可以创建任何一种版本的Ubuntu容器,只要传递release参数。比如说,想创建Ubuntu 14.10容器:

$ sudo lxc-create -n -t ubuntu -- --release utopic

它会下载并验证目标容器环境需要的所有程序包。整个过程可能需要几分钟或更长时间,具体取决于容器类型。所以请耐心点。

经过一系列的程序包下载和验证后,LXC容器映像最终创建完毕,你会看到默认的登录资料可供使用。容器存储在/var/lib/lxc/container-name,根文件系统则位于/var/lib/lxc/container-name/rootfs。

LXC创建过程中下载的所有程序包则缓存在/var/cache/lxc里面,那样使用同样的LXC模板创建额外的容器就不用花时间了。

现在不妨看一下主机上的LXC容器列表:

$ sudo lxc-ls –fancy

NAME STATE IPV4 IPV6 AUTOSTART

------------------------------------

test-lxc STOPPED - - NO

想启动一个容器,请使用下面这个命令。“-d”选项将容器作为守护程序来启动。要是没有这个选项,你在启动容器后,会直接被连接到控制台。

$ sudo lxc-start -n -d

启动容器后,不妨再次检查容器状态:

$ sudo lxc-ls –fancy

NAME STATE IPV4 IPV6 AUTOSTART

-----------------------------------------

lxc RUNNING 10.0.3.55 - NO

你会看到,容器处于“RUNNING”(运行)状态,已被赋予了一个IP地址。

你还可以证实,容器的接口(比如vethJ06SFL)自动连接到LXC的内部网桥(lxcbr0),如下所示。

$ brctl show lxcbr0

管理LXC容器

既然我们已知道了如何创建及启动LXC容器,现在不妨看看我们可以如何处理运行中的容器。

首先,我们想要访问容器的控制台。为此,键入这个命令:

$ sudo lxc-console -n

键入Ctrl+a q组合键,退出控制台。

想停止和销毁容器:

$ sudo lxc-stop -n

$ sudo lxc-destroy -n

想把现有容器克隆成另一个容器,使用这些命令:

$ sudo lxc-stop -n

$ sudo lxc-clone -o -n

故障排查

如果你遇到了LXC方面的错误,下面是故障排查方面的几个要点。

1. 你无法创建LXC容器,出现下列错误。

$ sudo lxc-create -n test-lxc -t ubuntu

lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync

这意味着你运行最新的LXC,却使用较旧的libcgmanager(libcg管理器)。想解决这个问题,你就需要更新libcg管理器。

$ sudo apt-get install libcgmanager0

如何在Ubuntu上借助Docker管理Linux容器

虽说标准的硬件虚拟化技术(比如KVM、Xen或Hyper-V)擅长于在一个物理主机上运行多个操作系统的完全隔离的实例,但这种虚拟化技术在性能、资源和资源配置时间等方面存在各种各样的开销。标准的机器虚拟化实际上可能没有必要,这取决于你的实际使用场合。

另外一种轻型虚拟化方法就是所谓的Linux容器(LXC),它提供了操作系统级别的虚拟化。由于不存在运行虚拟机带来的开销,LXC让用户可以在轻型容器沙盒里面运行标准Linux操作系统的多个实例。如果你搭建一个可复制的开发/测试环境,或者在安全沙盒里面部署应用程序,容器就派得上大用场。

Docker就是为了便于部署Linux容器而开发的这样一款开源工具。Docker正迅速成为容器技术方面的一项事实上的标准,已经被诸如Ubuntu和红帽之类的各大Linux发行版所采用。

我在本教程中将演示如何在Ubuntu 14.04上,借助Docker管理Linux容器。请注意:对Ubuntu的早期版本而言,操作步骤可能略有不同。

眼下,Ubuntu上可用的Docker程序包只支持64位系统。想在32位机器上运行它,你就要利用源代码构建32位版本的Docker(详见这里)。

安装Docker

借助apt-get命令,安装Docker是件轻而易举的事。

$ sudo apt-get install docker.io

为了允许非根用户也可以运行Docker,将你自己添加到docker群组。下面这个命令会允许当前用户运行Docker,无需根用户权限。

$ sudo usermod -a -G docker $USER

退出,然后重新登录,以激活群组成员的变化。

下一步,编辑Docker配置文件,以便更新Docker二进制代码的位置。

$ sudo vi /etc/default/docker.io

DOCKER="/usr/bin/docker.io"

重启Docker服务。

$ sudo service docker.io restart

管理Docker容器

如果你想启动Ubuntu操作系统的一个新的Docker容器,首先需要获取Ubuntu Docker映像文件。下面这个命令会通过网络下载Docker映像文件。

$ docker pull ubuntu

你可以以一种交互模式来开启Ubuntu Docker,如下所示。最后一个参数“/bin/bash”是一旦启动就将在容器里面执行的命令,这里是一个简单的bash外壳命令。

$ docker run -i -t ubuntu /bin/bash

上述命令会立即启动一个Ubuntu容器(这正是容器的魅力所在!),并为你提供容器里面的外壳提示符。这时候,你应该能够访问沙盒环境里面的标准的Ubuntu操作系统了。

想退出Docker容器,在容器里面的提示符处键入“exit”。

你可以启动不同形式的容器。比如,想启动Fedora容器,请执行下面这个命令:

$ docker.io run -i -t fedora /bin/bash

如果本地没有Fedora Docker映像文件,该命令就会首先自动下载映像文件,然后启动Docker。

如果你想启动采用某个发行版版本的容器,也可以这么做。比如说,想启动Ubuntu 13.04 Docker,请执行下面这个命令:

$ docker.io run -i -t ubuntu:13.04 /bin/bash

容器网络

Docker使用Linux网桥将容器彼此互联起来,并将它们连接到外部网络。安装了Docker后,你应该会看到默认情况下自动组建的docker0 Linux网桥。你创建的每个容器都将连接到docker0网桥接口。

自定义Linux网桥

如果你想,也可以使用自定义Linux网桥将诸容器互联起来。为此,你可以建立一个自定义网桥,并对它进行配置,如下所示。你可以为该网桥分配一个单独的子网,并且从子网为Docker分配IP地址。我会使用10.0.0.0/24作为Docker子网。

$ sudo apt-get install bridge-utils

$ sudo brctl addbr br0

$ sudo ifconfig br0 10.0.0.1 netmask 255.255.255.0

想让Docker使用自定义网桥,将“-b=br0”添加到/etc/default/docker.io中的DOCKER_OPTS变量,然后重启Docker服务。

$ sudo service docker.io restart

至此,任何新的容器都会连接到br0,其IP地址会自动从10.0.0.0/24来分配。

其他定制

还有另外几种方法可以定制Docker的默认网络设置,主要是通过改动/etc/default/docker.io中的DOCKER_OPTS变量来实现。

“-dns 8.8.8.8 -dns 8.8.4.4”:指定容器使用的DNS服务器。

“-icc=false”:让诸容器彼此隔离开来。

故障排查

1. 运行docker.io命令时,你会遇到下面这个错误。

dial unix /var/run/docker.sock: no such file or directory(没有此类文件或目录)

出现这个错误,可能是由于Docker守护程序没在运行。检查Docker守护程序的状态,确保先启动它。

$ sudo service docker.io status

$ sudo service docker.io start

只查看正在运行的容器和docker主机做了哪些端口映射的命令

Docker container 容器介绍

容器操作

使用 docker 命令行操作 docker 容器

启动容器

core@localhost ~ $ docker run

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

-a, --attach=[] Attach to STDIN, STDOUT or STDERR.

-c, --cpu-shares=0 CPU shares (relative weight)

--cap-add=[] Add Linux capabilities

--cap-drop=[] Drop Linux capabilities

--cidfile="" Write the container ID to the file

--cpuset="" CPUs in which to allow execution (0-3, 0,1)

-d, --detach=false Detached mode: run container in the background and print new container ID

--device=[] Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc)

--dns=[] Set custom DNS servers

--dns-search=[] Set custom DNS search domains

-e, --env=[] Set environment variables

--entrypoint="" Overwrite the default ENTRYPOINT of the image

--env-file=[] Read in a line delimited file of environment variables

--expose=[] Expose a port from the container without publishing it to your host

-h, --hostname="" Container host name

-i, --interactive=false Keep STDIN open even if not attached

--link=[] Add link to another container in the form of name:alias

--lxc-conf=[] (lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"

-m, --memory="" Memory limit (format: numberoptional unit, where unit = b, k, m or g)

--name="" Assign a name to the container

--net="bridge" Set the Network mode for the container

'bridge': creates a new network stack for the container on the docker bridge

'none': no networking for this container

'container:name|id': reuses another container network stack

'host': use the host network stack inside the container. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure.

-P, --publish-all=false Publish all exposed ports to the host interfaces

-p, --publish=[] Publish a container's port to the host

format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort

(use 'docker port' to see the actual mapping)

--privileged=false Give extended privileges to this container

--restart="" Restart policy to apply when a container exits (no, on-failure, always)


文章标题:linuxlxc命令 linux中ll命令用法
链接地址:http://cxhlcq.com/article/ddcphij.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部