Docker进阶之五:容器管理
容器管理
一.创建容器常用选项
docker container --help
|
指令 |
描述 |
资源限制指令 |
|
-i, --interactive |
交互式 |
-m,--memory |
容器可以使用的最大内存量 |
|
-t, --tty |
分配一个伪终端 |
--memory-swap |
允许交换到磁盘的内存量 |
|
-d, --detach |
运行容器到后台 |
--memory-swappiness=<0-100> |
容器使用SWAP分区交换的百分比(0-100,默认为-1) |
-a, --attach list |
附加到运行的容器 |
--memory-reservation |
内存软限制,Docker检测主机容器争用或内存不足时所激活的软 限制,使用此选项,值必须设置低于—memory,以使其优先 |
|
--dns list |
设置DNS服务器 |
--oom-kill-disable |
当宿主机内存不足时,内核会杀死容器中的进程。建议设置了- memory选项再禁用OOM。如果没有设置,主机可能会耗尽内存 |
-e, --env list |
设置环境变量 |
--cpus |
限制容器可以使用多少可用的CPU资源 |
--env-file list |
从文件读取环境变量 |
--cpuset-cpus |
限制容器可以使用特定的CPU |
-p, --publish list |
发布容器端口到主机 |
--cpu-shares |
此值设置为大于或小于默认1024值,以增加或减少容器的权重, 并使其可以访问主机CPU周期的更大或更小比例 |
-P, --publish-all |
发布容器所有EXPOSE的端口到宿主机随机端口 |
||
-h, --hostname string |
设置容器主机名 |
||
|
--ip string |
指定容器IP,只能用于自定义网络 |
||
|
--link list |
添加连接到另一个容器 |
||
|
--network |
连接容器到一个网络 |
||
--mount mount |
挂载宿主机分区到容器 |
||
-v, --volume list |
挂载宿主机目录到容器 |
||
--restart string |
容器退出时重启策略,默认no [always|on-failure] |
||
--add-host list |
添加其他主机到容器中/etc/hosts |
#创建一个容器名字为bs分配一个伪终端后台运行
docker container run -itd --name bs busybox
#容器id
3d79c1434aa920264b151dcac336b73ae335f644768ab921b684b6631513d854
#查看目前运行容器

#进入容器
docker container attach bs
docker exec -it bs sh
创建一个容器时候默认会从宿主机创建3个文件(切记在容器内修改这3个文件重启后失效)
# mount | grep etc
/dev/mapper/centos-root on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota) -- dns解析配置文件
/dev/mapper/centos-root on /etc/hostname type xfs (rw,relatime,attr2,inode64,noquota) --hostname文件
/dev/mapper/centos-root on /etc/hosts type xfs (rw,relatime,attr2,inode64,noquota) --主机与ip对应配置文件
###创建容器bs1,并且传入参数123 -e 传参
# docker container run -itd -e a=123 --name bs1 busybox
248cce9ee462b7db3dd0fdf8eb19c2975a1ba42491d3393bf2bca400a8607472
docker exec -it bs1 sh
# echo $a
123
###发布容器端口到宿主机
# docker container run -itd -p 8080:80 --name nginx01 nginx
# curl 127.0.0.1:8080
###查看容器日志 # docker logs nginx01
172.17.40.1 - - [07/Mar/2019:02:14:20 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
172.17.40.1 - - [07/Mar/2019:02:15:09 +0000] "GET / HTTP/1.1" 200 612 "-" "Wget/1.14 (linux-gnu)" "-"
###容器日志在宿主机存储位置(避免磁盘空间打满切记要清理)
# cat /var/lib/docker/containers/23456d3585ce6084f2790a36f89350a7aeca75df381abe759c5ef8b4b5f6ba00/23456d3585ce6084f2790a36f89350a7aeca75df381abe759c5ef8b4b5f6ba00-json.log
{"log":"ping: bad address 'baidu.com'\n","stream":"stderr","time":"2019-03-06T06:44:48.370833934Z"}
###容器内的程序挂掉始终重启
# docker container run -itd -p 8081:80 --name nginx03 --restart=always nginx
###容器资源限制
可以使用单核cpu 内存512m memory-swap=512 *2 (默认机制)
# docker container run -itd --cpus 1 --memory 512m --name nginx04 nginx
查看资源利用率
# docker container stats nginx04
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
7d9bc3409e92 nginx04 0.00% 2.516MiB / 512MiB 0.49% 656B / 0B 6.9MB / 0B 2
二.创建容器常用命令

Docker进阶之五:容器管理的更多相关文章
- Docker背后的容器管理——Libcontainer深度解析
Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcon ...
- Docker进阶之四:镜像管理
一.什么是镜像? 简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统. 二.镜像从哪里来? Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容 ...
- Docker镜像和容器管理(二)
Docker安装 Docker镜像管理 https://hub.docker.com/ 是公共的一个Docker镜像仓库,类似GitHub一样,上面有非常多的开源项目镜像. 可以直接在命令行搜索镜像 ...
- Docker 镜像与容器管理
镜像与容器简介 Docker的大部分操作都围绕着它的三大核心概念:镜像.容器.仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了 ...
- Docker 与 Podman 容器管理的比较
翻译自 Paul Ferrill 2020年9月1日的文章<Compare Docker vs. Podman for container management> [1] Docker 和 ...
- Docker进阶:容器卷、DockerFile、Docker网络原理
1.Docker镜像 1.1镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和机遇运行环境开发的软件. 包含一个软件的所有内容.蒋所有的应用和环境,直接打包为docker镜像,直 ...
- rancher1.X+docker+k8s搭建容器管理集群
一, 环境准备 服务器 Linux k8s-m -.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Li ...
- Docker学习笔记四:Docker镜像、容器管理工具shipyard
一.拉取以下几种镜像: docker pull alpineshipyard/shipyarddocker pull swarm docker pull shipyard/shipyarddocker ...
- 难部署的taiga,式微的circus——趋势从进程管理到容器管理,简单才是美
一直需要一个项目管理系统,一直没时间弄. taiga是github上搜project management star最多的项目,又是基于django用python写的后端,所以就用它: 但是,集中精力 ...
随机推荐
- WAMP下配置FCGID+ZendGuardLoader
公司的项目里,有几个文件是被加密的,经过一翻折腾,终于配置成功 文件加密技术用的是ZendGuard,所以必须安装的PHP必须得是nts的 一.下载并配置PHP 先下载安装php,注意VC版本和是否n ...
- Redis持久化方式的选择
本文将介绍Redis持久化的两种方式:快照持久化和AOF持久化,并对两种方法进行分析和对比,方便在实际中做出选择. 持久化 什么是持久化 Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘 ...
- Django解决跨域问题
原理:浏览器的同源策略,其实我们的请求发送过去了,服务器也进行响应了,就是浏览器把响应给阻止响应而已 第一种方法jsonp 因为浏览器不对 <script> 标签里面的src属性进行阻止, ...
- nuxt Window 或 Document未定义解决方案
概述 在用nuxt开发服务端渲染项目并引入第三方库的时候,经常会遇到window或document未定义的情况,原因是这个第三方库里面用到了window或者document,然后在服务端打包的时候,n ...
- 使用jdbc拼接条件查询语句时如何防止sql注入
本人微信公众号,欢迎扫码关注! 使用jdbc拼接条件查询语句时如何防止sql注入 最近公司的项目在上线时需要进行安全扫描,但是有几个项目中含有部分老代码,操作数据库时使用的是jdbc,并且竟然好多都是 ...
- Zabbix-server 3.4 安装详细和修改web界面中文出现的乱码(一)
1. 老套路先来个Zabbix简介: Zabbix是一个企业级的.开源的.分布式的监控套件: Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送Email. ...
- 《阿里巴巴 Java开发手册》读后感
前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618 ...
- 将个人博客从GitHub迁移至阿里云服务器过程总结
让我们先回顾下前两篇博客: 程序员如何从0到1搭建自己的技术博客 在个人博客中优雅的使用Gitalk评论插件 通过前两篇博客,我们了解了如何快速的从0到1搭建一个个人博客并使用了Gitalk评论插件, ...
- easyui表格自动换行
表格内容自动换行可以通过设计表格属性 nowrap:false来实现,默认值为true: 但是easyui并未提供,表头自动换行的解决方案,因为一般我们的数据表格列名都是固定的,想换行的话可以通过& ...
- Android新手引导库推荐
本文同步至http://javaexception.com/archives/31 介绍一波新手引导层的库.都是star数挺高的一些库. 1.NewbieGuide(国内开发者开发) Android ...