1.1 容器技术概述
近几十年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container),云计算(Cloud Computing)和区块链(Blockchain)等,真有“乱花渐欲迷人眼”之势。另外,出于业务的需要,IT应用模型也在不断的变革,例如,开发模式从瀑布式(Waterfall)到敏捷(Agile)再到精益(Lean),甚至是与QA和Operations融合的DevOps,应用程序架构从单体(monolithic)模型到分层模型再到微服务,部署及打包方式从面向物理机到虚拟机再到容器。应用程序的基础架构从自建机房到托管再到云计算,等等。这些变革使得IT技术应用的效率大大提升,同时却以更低的成本交付更高质量的产品。
容器是一种轻量级、可移植、自包含的软件打包技术,它使得应用程序可以在几乎任何地方以相同的方式运行。
容器与虚拟机对比关系图:
运用容器技术有如下优点:
- 更高效的利用系统资源
- 更快速的启动时间
- 一致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
容器简单命令:
启动
# docker run -it:交互 -d:后天运行 -p:端口映射 -v:磁盘挂载
启动已终止容器
# docker start
停止容器
# docker stop
查看容器进程
# docker ps
查看容器细节
# docker inspect <containerid>
进入容器
# docker attach
# docker exec
通过nsenter:
PID=$(docker inspect --format "{{.State.Pid}}" <container>)
# nsenter --target $PID --mount --uts --ipc --net --pid
拷贝文件之容器内
# docker cp file1 <containerid>:/file-to-path
初识容器
第一步 # cat Dockerfile FROM ubuntu ENV MY_SERVICE_PORT=80 ADD bin/amd64/httpserver /httpserver ENTRYPOINT /httpserver 第二步 # 将Dockerfile打包成镜像 # docker build -t cncamp/httpserver:${tag} # docker push cncamp/httpserver:v1.0 第三步 运行容器 # docker run -d cncamp/httpserver:v1.0
Namespace
Linux Namespace是一种Linux Kernel提供的资源隔离方案:
- 系统可以为进程分配不同的Namespace
- 并保证不同的Namespace资源独立分配,进程彼此隔离,即不同的Namespace下的进程互不干扰。
标签:容器,httpserver,Kubernetes,--,Namespace,系统,第一章,docker,cncamp From: https://www.cnblogs.com/weidongliu/p/16874612.html