linux cpu占用率如何看
264
2022-10-20
部署 Docker
1、简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker的基础是 Linux 容器(LXC)等技术。在LXC的基础上Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。从docker1.13开始,docker版本号变更为docker-ce类型docker1.13后分为docker ee与docker ce版本:docker ce社区版本docker ee企业版本
2、概念
Docker虚拟化有三个概念需要理解,分别镜像、容器、仓库。镜像:Docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。容器:使用镜像常见的应用或者系统,我们称之为一个容器。仓库:仓库是存放镜像的地方,分为公开仓库(Public)和私有仓库(Private)两种形式。
3、Docker引擎架构
docker引擎是一个C/S结构的应用server是一个常驻进程,REST API实现了client和server间的交互协议,CLI实现容器和镜像的管理,为用户提供统一的操作界面。client通过接口与server进程通信实现容器的构建、运行和发布。
4、安装Docker
确保centos系统内核版本高于3.101.安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm22.添加docker软件源yum-config-manager \--add-repo makecache fast4.安装docker-ceyum -y install docker-ce注意:docker使用端口tcp:2377,7946,udp:7946,47895.配置dockervi /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --registry-mirror=enable docker &&systemctl start docker7.查看版本docker version8.容器监控echo -e "GET /containers/redis-slave1/stats HTTP/1.0\r\n\ " | nc -U /var/run/docker.sock9.daemon.jsontee /etc/docker/daemon.json < 5、镜像管理 1.简介镜像不是一个单一的文件,而是由多层构成。我们可以通过docker history 6、容器管理 Docker容器,可以理解为一个或多个运行进程,而这些运行进程将占有相应的内存,相应的CPU计算资源,相应的虚拟网络设备以及相应的文件系统资源。而Docker容器所占用的文件系统资源,则通过Docker镜像的镜像层文件来提供。 基于每个镜像的json文件,Docker可以通过解析Docker镜像的json的文件,获知应该在这个镜像之上运行什么样的进程,应该为进程配置怎么样的环境变量,Docker守护进程实现了静态向动态的转变。1.当使用docker run来创建并启动容器时,Docker在后台运行的标准操作: 检查本地是否存在指定的镜像centos,不存在就从公有仓库下载 利用镜像创建并启动一个容器 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 从宿主主机配置的桥接网络接口中桥接一个虚拟接口到容器中去 从地址池配置一个IP地址给容器 执行用户指定的应用程序 执行完毕后,容器被终止2.创建容器常用选项-i, –interactive 交互式-t, –tty 分配一个伪终端-d, –detach 运行容器到后台-e, –env 设置环境变量-p, –publish list 发布容器端口到主机-P, –publish-all 发布容器所有EXPOSE的端口到宿主机随机端口–name string 指定容器名称-h, –hostname 设置容器主机名–ip string 指定容器IP,只能用于自定义网络–network 连接容器到一个网络–mount mount 将文件系统附加到容器-v, –volume list 绑定挂载一个卷–restart string 容器退出时重启策略,默认no,可选值:[always|on-failure]3.管理容器的常用命令ls 列出容器inspect 查看一个或多个容器详细信息exec 在运行容器中执行命令commit 创建一个新镜像来自一个容器cp 拷贝文件/文件夹到一个容器logs 获取一个容器日志port 列出或指定容器端口映射top 显示一个容器运行的进程stats 显示容器资源使用统计stop/start 停止/启动一个或多个容器rm 删除一个或多个容器3.1.创建容器docker create -it nginxdocker ps -a3.2.启动容器docker start f51d7ef037f5docker ps -a3.3.终止容器docker stop f51d7ef037f5 #终止容器3.4.查看容器详细信息docker inspect f51d7ef037f53.5.进入容器docker exec -it f51d7ef037f5 /bin/bash3.6.删除容器docker rm f51d7ef037f53.7.端口映射docker run -d -p 80:80 --name=nginx -h nginx_web nginx3.8.查看容器日志docker logs nginx3.9.容器资源限制-m,–memory 容器可以使用的最大内存量–memory-swap 允许交换到磁盘的内存量–memory-swappiness=<0-100> 容器使用SWAP分区交换的百分比(0-100,默认为-1)–oom-kill-disable 禁用OOM Killer-cpus 可以使用的CPU数量–cpuset-cpus 限制容器使用特定的CPU核心,如(0-3, 0,1)–cpu-shares CPU共享(相对权重)例:docker run -d -m 1G --cpus=2 nginxdocker stats c6bc3d89ea123.10.清理无name、无tag镜像docker images -f "dangling=true" -q|xargs docker rmi 7、发布管理 1.静态方式FROM tomcatMANINTAINER zhaoCOPY ./websrc /usr/local/tomcat/webapps/myproj/docker build -t web1 -f Dockerfile1docker run -dit -p 80:8080 web12.动态方式FROM tomcatMANINTAINER zhaoRUN mkdir -p /usr/local/tomcat/webapps/myprojVOLUME /usr/local/tomcat/webapps/myprojdocker build -t web2 -f Dockerfile2docker run -dit -p 80:8080 -v /usr/local/tomcat/webapps/myproj:/usr/local/tomcat/webapps/myproj web1
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~