首页
常用命令
About Me
推荐
weibo
github
Search
1
linuxea:gitlab-ci之docker镜像质量品质报告
48,996 阅读
2
linuxea:如何复现查看docker run参数命令
20,462 阅读
3
Graylog收集文件日志实例
18,021 阅读
4
git+jenkins发布和回滚示例
17,601 阅读
5
linuxea:jenkins+pipeline+gitlab+ansible快速安装配置(1)
17,574 阅读
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack
Open-Falcon
Prometheus
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
音乐
影视
music
Internet Consulting
最后的净土
软件交付
持续集成
gitops
devops
登录
Search
标签搜索
kubernetes
docker
zabbix
Golang
mariadb
持续集成工具
白话容器
linux基础
nginx
elk
dockerfile
Gitlab-ci/cd
最后的净土
基础命令
jenkins
docker-compose
gitops
haproxy
saltstack
Istio
marksugar
累计撰写
676
篇文章
累计收到
140
条评论
首页
栏目
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack
Open-Falcon
Prometheus
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
音乐
影视
music
Internet Consulting
最后的净土
软件交付
持续集成
gitops
devops
页面
常用命令
About Me
推荐
weibo
github
搜索到
91
篇与
Docker
的结果
2021-12-18
linuxea:docker-compose2和3的常用参数和资源限制
通常我们在编排一个容器的时候,最简单的方式就是使用docker-compose,compose是简单的将docker run的命令进行组织起来。而在docker早期的产品里面compose被收购后是很重要的一个环节。当我们run一个容器的时候,一般而言,我们关注她的网络,持久化,资源情况以rabbitmq为例,如下:2.4version: '2.4' services: rabbitmq: image: rabbitmq:3.7.7-management container_name: rabbitmq restart: always hostname: "rabbitmqA" network_mode: "host" environment: - RABBITMQ_ERLANG_COOKIE="DSSOQQK1" - RABBITMQ_DEFAULT_USER=linuxea - RABBITMQ_DEFAULT_PASS=DSSOQQK1PASSWORD - RABBITMQ_DEFAULT_VHOST="/" volumes: - /data/rabbitmq/data:/var/lib/rabbitmq - /data/rabbitmq/rabbitmq_delayed_message_exchange-3.8.0.ez:/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez mem_limit: 2048m如上,我们关注几个配置项目restart: always: 配置了容器重启策略,如果不配置此项,在docker被重启后,容器未必会被拉起。container_name: 运行的容器命名hostname: 容器的主机名network_mode: 当被配置"host"的时候,docker不会隔离网络名称空间,这是最简单粗暴也有效的方式。我喜欢这样使用,特别是在你用iptables的时候mem_limit: 在2.4的版本中mem_limit是用来限制内存大小的选项,不限制则使用所有了3[root@test rabbitmq]# docker stats rabbitmq CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 5c1aed8e7ce5 rabbitmq 0.00% 42.66MiB / 2GiB 2.08% 0B / 0B 0B / 32.8kB 433version: '3' services: rabbitmq: image: rabbitmq:3.7.7-management container_name: rabbitmq restart: always hostname: "rabbitmqA" network_mode: "host" environment: - RABBITMQ_ERLANG_COOKIE="DSMAOMOXML" - RABBITMQ_DEFAULT_USER=mark - RABBITMQ_DEFAULT_PASS=E4OWYyNj11SXOA - RABBITMQ_DEFAULT_VHOST="/" volumes: - /data/rabbitmq/data:/var/lib/rabbitmq - /data/rabbitmq/rabbitmq_delayed_message_exchange-3.8.0.ez:/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez deploy: resources: limits: cpus: '0.5' memory: 2048m reservations: cpus: '1' memory: 2048m而在compose3版本中更倾向对集群的使用了,从而资源限制的方式也变了。2.4到3版本并不是一个2.4到3的平滑升级,3对于docker公司来说是另外一个商业计划。这样来理解,相信你已经明白了 deploy: resources: limits: cpus: '0.5' memory: 2048m reservations: cpus: '1' memory: 2048m如上,我们在限制内存的时候使用的是0.5。要理解CPU限制为什么是0.5CPUS,以及了解CFS调度。我们最快的方式查看docker官网的configure-the-default-cfs-scheduler解释--cpus=<value>: 指定容器可以使用多少可用 CPU 资源。例如,如果主机有两个 CPU 并且您设置了--cpus="1.5",则容器最多保证一个半 CPU。这相当于设置--cpu-period="100000"和--cpu-quota="150000"。如果你只有1个CPU,配置是0.5的时候,就是使用一半的CPU,50%,1个CPU的整个是100%CPU的限制实际上有很多,你甚至可以限制它运行在某一颗上另外,之所以内存的reservations和limits是一样,是为了减少内存回收可能产生的比必要的问题,所以请求和限制设置是一样的。而CPU我们是可压缩的,所以我们可以灵活的进行配置https://docs.docker.com/compose/compose-file/compose-file-v2/#restart[root@test rabbitmq]# docker stats rabbitmq CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a46e89266a99 rabbitmq 0.00% 102.3MiB / 2GiB 5.00% 0B / 0B 0B / 90.1kB 162 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a46e89266a99 rabbitmq 0.00% 102.3MiB / 2GiB 5.00% 0B / 0B 0B / 90.1kB 162 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a46e89266a99 rabbitmq 0.13% 102MiB / 2GiB 4.98% 0B / 0B 0B / 90.1kB 162
2021年12月18日
1,446 阅读
0 评论
0 点赞
2019-05-27
linuxea: 三小时快速入门docker指南
在此之前,我记录了很多章关于docker使用的基础,从安装到编写,其中还有一些常见的使用技巧,这其中还包括一些docker-compsoe的简单操作案例,其中有一些由于编写的时间太久,bug很多,但用来学习绰绰有余,但也仅供参考。现在,我将所有的文章汇聚在一个页面中方便查看。假如你是一个docker新手,没有太多时间,你不妨从本章入手学习,假如你想详细了解docker,那我推荐你查看我记录的白话容器26章系列详细学习docker。如果你已经阅读了这所有的文章,你可以查看我的github上的dockerMops,在这个项目中,有我学习的从之前到现在私下编写的一些镜像原文件。请不要误会,这一些仅仅只是为了更好的理解docker,仅供参考。如果你在生产中使用,请妥善思考如何使用。如果文章中出现错误,请留言或者QQ讨论群:47355295 ,加群注明来意这是一篇似乎多余的文章,因为这里提到的都是些基础。这是因为考虑到很多新手朋友接触docker学习的困难,我花了一个下午断断续续写好,它不需要你付费,它仅仅只希望可以帮助到大家。正所谓,取自网络,回馈网络。请不要吝啬你的赞美安装docker和 compose脚本部署:[root@www.linuxea.com-Node99 ~]# curl -Lks https://raw.githubusercontent.com/marksugar/MySysOps/master/scripts/docker-init-Usage.sh|bash Please input one arguement: Usage: bash {centos_install|debian_install|ubuntu_install}当你执行这个脚本,他会提示你:Please input one arguement: Usage: bash docker-init-Usage.sh{centos_install|debian_install|ubuntu_install}只需要输入对应的系统安装即可,如centos[root@www.linuxea.com-Node99 ~]# curl -Lks https://raw.githubusercontent.com/marksugar/MySysOps/master/scripts/docker-init-Usage.sh|bash -s centos_install docker 已经安装 docker-compose 已经安装脚本细节可直接访问github链接查看即可快速入门如果你没基础,你可以从docker的基础命令看起,进行简单的操作,并且了解docker后台运行,以及在运行时候可以使用一些命令来提升学习兴趣,假如报错,可以使用日志来判断哪里有问题。当你简单了解后,可以进一步开始dockerfile的阅读。假如你觉得这些都很乱,你可以尝试学习我在上面提到过的白话容器26章系列详细学习docker。linuxea: docker后台运行模式linuxea:docker中运行bash或其他命令linuxea:docker命令如何过滤docker容器linuxea:如何从命令行删除docker容器linuxea:docker run的十个常用选项linuxea:十个初学Dcoker cli指令linuxea:有效使用docker logs查看日志linuxea:docker标签的简单介绍dockerfile编写指南如果你只是浅用户,并不需要自己编写dockfile,你可以直接跳到docker网络学习docekr的ip和网络配置linuxea:白话容器之简单制作镜像与hub使用(7)linuxea:白话容器之使用dockerfile创建简单镜像1(18)linuxea:白话容器之使用dockerfile指令使用2(19)linuxea:白话容器之dockerfile CMD/entrypoint详解3(20)linuxea:白话容器之dockerfile COPY与ADD的最佳实践(4)(21)linuxea:白话容器之dockerfile health check使用(5)(22) linuxea:白话容器之dockerfile ARG和ONBUILD使用(6)(23) dockerfile常见的使用技巧linuxea:docker run与exec的使用差异linuxea:docker不能忽视的.dockerignore用法linuxea:dockerfile中的RUN指令对镜像大小的影响linuxea:缩减docker镜像大小的5个步骤docker网络如果你也不用docker-compose对容器做简单的编排,仅仅就用一个容器尝试,你大可不必费时间看这么多,直接跳到端口暴露阅读使用即可。假如你有多个容器需要编排,你又只想简单的使用,除了docker网络里面的ip,你或许还要学习,我推荐你查看linuxea:如何使用docker-compose优雅的运行多个容器。相信你会喜欢的linuxea:docker-compose设置静态ip和link与depends_on的区别linuxea:白话容器之虚拟化网络与容器网络(8) linuxea:白话容器之docker网络(9)linuxea:白话容器之docker网络名称空间(10)linuxea:白话容器之自定义docker0网络(13)linuxea:白话容器之sock远程连接docker(14)linuxea:白话容器之docker创建自定义的网桥(15)Docker指定网桥和指定网桥IPdocker端口暴露如果对端口暴露对于你来说过于啰嗦,你直接查看linuxea:白话容器之联盟式容器与host网络模式(12),可以使用--net=host即可完成端口直接暴露,且不会隔离网络名称空间,倘若你是使用iptables,你会惊讶的发现,无论你怎么动防火墙,容器仍然可以使用。但我仍然建议你查看上述docker网络的几篇,了解docker网络的原理,这在有些时候是有必要的。linuxea:简单解释docker的端口和端口暴露(EXPOSE)linuxea:白话容器之docker的4种端口暴露方式(11)linuxea:白话容器之联盟式容器与host网络模式(12)docker仓库如果你已经在本地使用了docker有很多,想构建自己的docker仓库,你可以大致阅读这几章节的文章,选择一个。不过我推荐你使用harbor,因为这是harbor对china支持最好的中文版。相信你会喜欢的。忘了说,你已经使用了docker仓库,想必你会用上发布更新,在早期,我写过一篇jenkins+gitlab+docker快速部署发布回滚示例,这篇文章或许可以给你一些思路,尽管这看起来一点都不时髦。linuxea:白话容器之Registry与Harbor的构建和使用 (26)linuxea:docker仓库harbor-https的配置和使用docker-Portusv2.1镜像仓库快速部署使用docker-harbor0.5.0镜像仓库快速部署docker多阶段构建镜像多阶段构建可以加快构建速度,在某一些场景下,这必不可缺linuxea:Distroless与多阶段构建linuxea:docker多阶段构建Multi-Stage与Builder对比总结linuxea:Docker多阶段构建与- target和--cache-fromdocker数据卷linuxea:白话容器之docker存储卷概述(16)linuxea:白话容器之docker存储卷使用的几种方式(17)docker守护进程docker为什么要用守护进程?这似乎并不符合docker一贯的作风,我们知道,每个容器内ID为1的通常是启动容器的唯一一个进程,进程终止也就意味着容器终止。我们也知道,每个容器内进程ID为1的也是第一个启动的进程,支撑整个容器的框架的进程。我们提高过多次,容器内的进程必须是要在前台运行。为什么?这似乎要去了解更多的知识框架来支持这种操作的合理性。思考1:容器内ID为1的进程是容器内唯一一个在前台运行的进程,这样做的好处是什么? 当你从本章中的文章中了解到后你的思路将会跟明确那么为什么有需要守护进程?当你真的需要守护进程的时候你应该了解到它的必要性了。简单的说,就是在容器内需要被运行多个进程的时候,你可能需要守护进程来管理。linuxea:docker的supervisor与inotifywait的使用技巧docker-composelinuxea:如何使用docker-compose优雅的运行多个容器docker变量传递linuxea:compose中的变量传递与docker-createrepo构建linuxea:如何使用docker和docker-compose的Entrypointdocker安全linuxea:docker与gVisor沙箱linuxea:Distroless与多阶段构建linuxea:docker特权模式与--cap-add和--cap-droplinuxea:了解uid和gid如何在docker容器中工作linuxea:docker容器中程序不应该以root用户身份运行linuxea:docker卷和文件系统权限linuxea:尽可能不在docker镜像中嵌入配置或者密码linuxea:docker的安全实践初识dockerDocker简单安装和命令使用Docker网络和数据卷构建一个简单的docker镜像使用dockerfile构建一个简单的镜像Docker Hub简单使用Docker数据管理-备份和恢复Docker本地仓库简单使用docker构建示例linuxea:构建redis4.0.11-Docker镜像技巧和思路Docker alpine构建nginxDocker分离构建lnmp部署wordpressDocker部署Redis cluster3.2.5集群Docker构建二进制mariaDB环境docker构建subversion1.9.4Docker构建NTP服务器Docker一步步构建Tomcat思路docker常见问题linuxea:使用单个命令清理docker镜像,容器和卷linuxea:如何设置docker日志轮换linuxea:什么是docker <none><none> image(镜像)?其他docker相关Centos7 Install rancherlinuxea:nginx容器优化方案(小米容器cpu检测)docker其他使用jenkins+gitlab+docker快速部署发布回滚示例docker工具linuxea:如何复现查看docker run参数命令swarmlinuxea:Docker swarm集群入门简单使用(1)linuxea:Docker swarm集群节点服务更新(2)linuxea:Docker swarm集群节点路由网络(3)linuxea:docker config的配置使用docker修改容器时间linuxea:如何单单修改docker容器的系统时间docker资源限制linuxea:白话容器之CPU与内存资源限制概述(24) linuxea:白话容器之CPU与内存资源限制测试(25)
2019年05月27日
5,908 阅读
0 评论
0 点赞
1
2
...
46