四.docker容器管理

试验机192.168.181.144
用户root 密码123456

主机名
[email protected]:/# hostname
web

docker container run -d --name web2 -P nginx #-P :发布容器中声明EXPOSE端口到宿主机的随机端口;
#docker ps -l #列出最新创建的容器;
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
803a6db849ab nginx "nginx -g ‘daemon of…" 16 seconds ago Up 9 seconds 0.0.0.0:32768->80/tcp web2
http://192.168.181.144:32768/

docker image prune 移除不使用的镜像;

Export 导出容器文件系统 -----------针对容器导出导入,不会保存层级信息,快照。
import导入容器文件

Save 保存导出完整镜像;docker image save nginx > nginx.tar ------针对镜像持久化,可以保存层级信息以及历史数据,俗称元数据。

Load 导入镜像 docker image load < nginx.tar

Docker stats web 动态查看运行内存状态
Docker stats --no-stream web 静态查看

容器内存默认运用到物理所有内存,所以为了安全 要做内存限制

默认swap是设置内存到两倍

docker cp apache-maven-3.5.3-bin.tar.gz web04:/

docker exec -it web04 ls /

docker top 2167fe9f46da 查看容器进程

容器日志输出到控制台的日志才能用docker logs 看到

docker run -d --name web3 --restart always -P nginx :运行容器 参数--restart always 当 Docker 重启时,容器能自动启动
参数 on-failure 容器退出docker会启动他直到超过设置启动的次数;

容器资源限制参数
Cpu限额
docker run -d --name nginx03 --memory="500m" –memory-swap="600m" --oom-kill-disable nginx

默认情况下,在出现 out-of-memory(OOM) 错误时,系统会杀死容器内的进程来获取更多空闲内存。这个杀死进程来节省内存的进程,我们姑且叫它 OOM killer。我们可以通过设置–oom-kill-disable选项来禁止 OOM killer 杀死容器内进程。但请确保只有在使用了-m/–memory选项时才使用–oom-kill-disable禁用 OOM killer。如果没有设置-m选项,却禁用了 OOM-killer,可能会造成出现 out-of-memory 错误时,系统通过杀死宿主机进程或获取更改内存。

#启用docker容器限制内存500m,swap 600m 禁止oom;

docker stats --no-stream nginx03

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e7042e0bf2e2 nginx03 0.00% 3.648MiB / 600MiB 0.61% 648B / 0B 8.55MB / 0B 0
#运行查看容器状态;

docker run -d --name web05 --cpus="0.5" nginx #容器运行50%cpu;

禁用 –oom-kill-disable 禁用OOM Killer 启用,物理内存不够了 就自动关闭内存耗费最大的应用;

Docke 容器状态监控
$ docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

NAME CPU % MEM USAGE / LIMIT
web03 0.00% 1.352MiB / 977.9MiB
nginx02 0.00% 2.848MiB / 600MiB
web2 0.00% 1.363MiB / 977.9MiB

容器重新生成镜像
【容器数据持久化】

docker exec -it web05 bash #进入容器修改文件;

#docker commit web05 nginx:v1 #提交并且打标记变成镜像;

docker images #查看最新的镜像;

#进入容器查看
docker run --d --name web05-1 ngixn:v1
#docker exec -it web05-1 bash

复制本地文件到容器

docker cp 1.txt web05:/

docker exec -it web05 bash 或者用docker exec -it web05 ls查看

查看端口映射

docker port 803a6db849ab

80/tcp -> 0.0.0.0:32768

容器映射宿主机

查看容器中进程

docker top 803a6db849ab

在线修改容器cpus限制 ,仅限cpu和内存,即时生效

docker update --cpus "1.5"

原文地址:https://blog.51cto.com/2367685/2476389

时间: 2024-10-10 16:29:10

四.docker容器管理的相关文章

[CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为CoreOS支持的第一套应用程序隔离方案.本文将主要介绍在具体的场景下,如何在CoreOS中恰当地管理Docker容器. 注:本文首发于CSDN,转载请标明出处. [编者按]在“漫步云端:CoreOS实践指南”系列的前几篇文章中,ThoughtWorks的软件工程师林帆主要介绍了CoreOS及其相关

docker容器管理和数据管理

1.概念 容器类似于一个linux环境,是通过镜像创建启动的,可以理解为在镜像的最上一层创建一个可读写层,镜像本身是只读的,容器的读写不会改变镜像. 2.容器管理 2.1容器的创建 #docker run -itd --name nginx1 nginx:latest基本的创建携带 i t d这三个参数即可,表示的意义分别如下:-i: 以交互模式运行容器,通常与 -t 同时使用:-d: 后台运行容器,并返回容器ID:-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: nginx1和n

Docker容器管理

创建容器: docker create -it [NAME]:[TAG] 启动容器: docker start ID 创建并启动容器: docker run -it [NAME]:[TAG] COMMAND [PARAMS] -i:让容器的标准输入保持打开. -t:让Docker分配一个伪终端. -d:让Docker容器在后台以守护态形式运行. 停止容器: docker stop ID 首先向容器发送SIGTERM信号,等待一段时间后再发送SIGKILL信号终止容器. docker kill I

Docker容器管理之Kubernetes

Kubernetes是Google开源的容器集群管理系统.它构建于docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台.本文旨在梳理Kubernetes的架构.概念及基本工作流,并且通过运行一 个简单的示例应用来介绍如何使用Kubernetes. 总体概览 如下图所示是我初步阅读文档和源代码之后整理的总体概览,基本上可以从如下三个维度来认识Kubernetes. 操作对象 Kubernetes以RESTF

Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例

搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html 环境:Ubuntu [email protected]:~$ uname -a Linux jinhan-chen-110 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [email protected]:~$ lsb_rele

Docker容器管理--Dockerfile

前言: docker镜像使用dockerfile文件生成,dockerfile是一个文本文件,通过命令行的执行来组成新的镜像 基本语法 FROM 基于那个镜像构建容器 例:centos:7 任何Dockerfile的第一条指令必须为FROM指令 MAINTAINER 镜像维护者信息 例:unixzhang <[email protected]> 该信息会被写入到镜像的Author属性中 RUN 构建镜像时运行的Shell命令 例:RUN ["yum","insta

docker容器管理基础

1.命令: docker info #查看服务器上docker详细信息 docker search #搜索镜像 docker image pull nginx:1.14-alpine #下载一个镜像 docker image ls #查看镜像 docker rmi -f image id #删除镜像 -f:强制删除 docker rm 容器名 #删除容器 docker run --name b1 -it busybox:latest #启动一个容器 -it:交互运行 b1:名字 docker r

Docker容器管理--ubuntu安装docker

Ubuntu14.06/16.04 安装证书 sudo apt-get install \apt-transport-https \a-certificates \curl \software-properties-common 添加Docker源的KEY curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 添加Docker软件包源 sudo add-apt-repository \"deb [

Docker背后的容器管理——Libcontainer深度解析

Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发