容器:Docker与LXC差异以及相关命令
LXC与Docker对比,LXC只实现了进程沙盒化,不支持在不同的机器上进行移植;Docker将应用的所有配置和环境进行了抽象,打包到一个容器中,此容器可以在任何安装了docker的机器上运行,效果都是一样的,使得改容器具有了可移植性。
1:Docker容器
运行时互相隔离,应用级
Docker内部包含应用完整的运行环境,包含函数库和依赖,仅依赖于linux系统内核,故可以在任意的操作系统上运行
可以快速将程序、环境、依赖打包为镜像,任意迁移到其他linux系统
docker为一个系统进程,体积小,启动块,性能好
2:LXC
LXC是Linux Containers 的简称 ,基于Linux内核的容器技术,允许多个隔离的用户空间实例在同一 Linux 内核上运行。每个实例(容器)拥有独立的文件系统、进程空间、网络接口和用户空间环境,但共享相同的内核。
操作系统级别,相比传统虚拟机负载和资源消耗更低。
使用命名空间来提供进程隔离
常用命令
LXC:
lxc-checkconfig 检查系统环境是否满足容器使用要求
lxc-create 创建lxc容器,格式 lxc-create -n NAME -t TEMPLATE_NAME
lxc-start 启动容器
lxc-stop 停止容器
lxc-destory 删除处于停止状态容器
lxc-snapshot 创建和恢复快照
lxc-execute -n container-name – command 执行容器内部命令
lxc-console 附加至指定容器控制台 lxc-console -n NAME -t NUMBER
lxc-attach -n 进入指定容器shell
lxc-list 列出所有容器
lxc-file push source-file container-name /destination-file 复制文件到容器
lxc-file pull container-name /source-file destination-file 从容器复制数据
lxc-fs list container-name查看容器文件系统
Ctrl+a q 退出容器
。。。。。。
Docker:
docker ps 列出容器
docker images 查看本地所有镜像
docker search image name 查找镜像
docker pull iamge name拉取镜像,默认拉去最新镜像
docker rmi image id 删除镜像
docker run [OPTIONS] image 启动容器(需要镜像)
docker rm container 删除容器
docker exec [OPTIONS] container cmd或者 docker attach container 进入容器执行命令
ps: docker exec -u root <container name> /bin/bash -c "cat file"
docker build [OPTIONS] path | url | -
docker logs container_name 获取容器日志
docker load < /home/自定义镜像 加载自定义镜像
docker save 镜像名 > /home/新镜像名.tar 保存镜像
ctrl + P + Q 容器不停止退出
docker cp 容器id:/file_path /宿主机路径 从docker容器拷贝文件到宿主机
详细参数单独根据命令查询