[https://yeasy.gitbooks.io/docker\_practice/](https://yeasy.gitbooks.io/docker_practice/)
**Docker参考手册**:
https://docs.docker.com/engine/reference/commandline/dockerd/
默认docker是没有资源限制的。
新版docker将命令进行了归类,以前的命令格式还能用,但会逐渐取消。
```
Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
```
```
# docker --help
# docker version #查看版本
# docker search centos#搜索可用docker镜像
# docker images 查看当前docker所有镜像
# docker pull centos #下载镜像
# docker history 镜像 # 可以查看这个镜像每层大小
#####根据容器id导入导出
# cat centos.tar | docker import - centos6 #Docker导入镜像
# dockerexport id > cenos6.tar #Docker导出镜像,这个id是容器id不是镜像id
#####根据镜像id导入导出
# docker save 0fdf2b4c26d3 > centos6.tar
# docker load < centos6.tar
# docker run centos echo "hello word"#在docker容器中运行hello world!
# docker run centos yum install ntpdate#在容器中安装ntpdate的程序
# docker ps -l 命令获得最后一个容器的id,docker ps -a查看所有的容器。
# 运行docker commit 提交刚修改的容器,例如:
# docker commit 2313132 centos:v1
# docker run -i -t centos /bin/bash
# docker run -it mysql:5.7.26 /bin/bash 镜像加tag
# 在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t 表示打开一个终端的意思,-i表示可以交互输入。
# docker run -d centos:v1 /bin/bash ,-d表示在后台启动,以daemon方式启动。
# docker stop id 关闭容器
# docker start id 启动某个容器
# docker rm id 删除容器,docker rmi images删除镜像
# docker run -d -p 80:80 -p 8022:22 centos:v2
#解析:-p指定容器启动后docker上运行的端口映射及容器里运行的端口,80:80,第一个80表示docker系统上的80,第二个80表示docker虚拟机里面的端口。用户默认访问本机80端口,自动映射到容器里面的80端口。
# docker exec -it id /bin/bash
```
# 上传镜像
docker tag 120.76.0.0:8082/alpine-jdk8:v1 192.168.0.96:8082/alpine-jdk8:v1
docker push 192.168.0.96:8082/alpine-jdk8:v1
# docker的配置文件
```
Docker配置文件/etc/docker/daemon.json
该文件作为Docker Engine的配置管理文件,几乎涵盖了所有docker命令行启动可以配置的参数。
默认是没有的,需要手动创建
docker-daemon.json各配置详解
{
"allow-nondistributable-artifacts": [], #不对外分发的产品提交的registry仓库
“api -cors-header”: "" , #在引擎API中设置CORS标头
“authorization - plugins”:[], #要加载的授权插件
“bridge”: "" , #将容器附加到网桥
“cgroup -parent”: "" , #为所有容器设置父cgroup
“cluster -store”: "" , #分布式存储后端的URL
“cluster -store- opts”:{}, #设置集群存储选项(默认map [])
“cluster -advertise”: "" , #要通告的地址或接口名称
“data -root”: " /var/lib/docker " , #Docker运行时使用的根路径,默认/var/lib/ docker
“debug”: true , #启用调试模式,启用后,可以看到很多的启动信息。默认false
“default -gateway”: "" , #容器默认网关IPv4地址
“default -gateway-v6”: "" , #容器默认网关IPv6地址
“default - runtime”:“runc”, #容器的默认OCI运行时(默认为“ runc”)
“default - ulimits”:{}, #容器的默认ulimit(默认[])
“dns”: [], #设定容器DNS的地址,在容器的 /etc/ resolv.conf文件中可查看。
“dns -opts”: [], #容器 /etc/ resolv.conf 文件,其他设置
“dns - search”: [], #设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com 。 注意:如果不设置, Docker 会默认用主机上的 /etc/ resolv.conf 来配置容器。
“exec - opts”: [], #运行时执行选项
“exec -root”: "" , #执行状态文件的根目录(默认为’/var/run/ docker‘)
“fixed -cidr”: "" , #固定IP的IPv4子网
“fixed -cidr-v6”: "" , #固定IP的IPv6子网
“group”: “”, #UNIX套接字的组(默认为“docker”)
"graph":"/var/lib/docker", #已废弃,使用data-root代替,查看docker版本
“hosts”: [], #设置容器hosts
“icc”: false , #启用容器间通信(默认为true)
“insecure-registries”: [“ 120.123 . 122.123 : 12312 ”], #设置私有仓库地址可以设为http
“ip”:“ 0.0 . 0.0 ”, #绑定容器端口时的默认IP(默认0. 0.0 . 0 )
“iptables”: false , #启用iptables规则添加(默认为true)
“ipv6”: false , #启用IPv6网络
“ip -forward”: false , #默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看
“ip -masq”: false , #启用IP伪装(默认为true)
“labels”:[“nodeName =node- 121 ”], #docker主机的标签,很实用的功能,例如定义:–label nodeName=host- 121
“live -restore”: true , #在容器仍在运行时启用docker的实时还原
“log -driver”: "" , #容器日志的默认驱动程序(默认为“ json- file ”)
“log -level”: "" , #设置日志记录级别(“调试”,“信息”,“警告”,“错误”,“致命”)(默认为“信息”)
“max -concurrent-downloads”: 3 , #设置每个请求的最大并发下载量(默认为3)
“max -concurrent-uploads”: 5 , #设置每次推送的最大同时上传数(默认为5)
“mtu”: 0 , #设置容器网络MTU
“oom -score-adjust”:- 500 , #设置守护程序的oom_score_adj(默认值为- 500 )
“pidfile”: “”, #Docker守护进程的PID文件
“raw -logs”: false , #原始日志、全时间戳机制
“registry -mirrors”: [“https: // 192.168.2.23:89”], #设置镜像加速地址
“selinux -enabled”: false , #默认 false ,启用selinux支持
“storage -driver”: "" , #要使用的存储驱动程序
“swarm -default-advertise-addr”: "" , #设置默认地址或群集广告地址的接口
“tls”: true , #默认 false , 启动TLS认证开关
“tlscacert”: “”, #默认 ~/.docker/ ca.pem,通过CA认证过的的certificate文件路径
“tlscert”: “”, #默认 ~/.docker/ cert.pem ,TLS的certificate文件路径
“tlskey”: “”, #默认 ~/.docker/ key.pem,TLS的key文件路径
“tlsverify”:true , #默认false,使用TLS并做后台进程与客户端通讯的验证
“userland -proxy”:false , #使用userland代理进行环回流量(默认为true)
“userns -remap”: "" , #用户名称空间的用户/ 组设置
“bip”:“ 192.168 . 88.0 / 22 ”, #指定网桥IP
“storage - opts”: {
“overlay2.override_kernel_check = true ”,
“overlay2.size = 15G”
}, #存储驱动程序选项
"labels":["nodeName=node-121"], #docker主机的标签
"live-restore": true,
"log-driver":"",
"log-level":"",
"log-opts": {},
"max-concurrent-downloads":3,
"max-concurrent-uploads":5,
"mtu": 0,
"oom-score-adjust":-500,
“log - opts”: {
“max - file ”: “ 3 ”,
“max - size”: “10m”,
}, #容器默认日志驱动程序选项
“iptables”: false #启用iptables规则添加(默认为true)
}
```
- 笔记
- shell
- 如何才能学好Shell编程之“老鸟”经验谈
- scripts
- 迁移脚本
- centos_install.sh
- https.support.lwork.com.conf
- newbroker.default.lwork.com.conf
- bwnginx.conf
- twnginx.conf
- pre.default.lwork.com.conf
- zabbix_agentInstall
- getcc.sh
- shell脚本调试
- shell学习
- 第一章shell脚本入门
- shell脚本开发的基本规范及习惯
- 脚本规范示例
- 第三章变量的核心知识与实践
- 第四章变量知识进阶和实践
- 4.3 shell变量子串知识及实践
- 4.4 shell特殊扩展变量的知识与实践
- 第五章 变量的数值计算实践
- 第六章 shell脚本的条件测试
- 第七章 if条件的知识与实践
- 第8章 shell函数的基础实践
- 第13章 Shell数组的应用实践
- 经验
- for和while读行的区别
- 一个文件取2个参数
- 重定向正确及错误输出
- linux常用命令
- awk
- 详解
- 例子
- 内置变量
- 实例2
- 实例3
- find/grep
- iostat
- java启动脚本
- ln -s
- nmap
- passwd
- sed
- 详解
- 例子
- ssh-copy-id
- vim
- linux systemd详解
- 常用命令实列
- ss
- rz,sz小文件上传下载
- 文件的合并,排序和分割
- sort,uniq
- sort
- uniq
- cut
- paste
- tr
- curl
- cpu
- scp
- 批量添加注释
- nc
- yarn
- lsof
- tar
- cat
- openssl自签名证书
- pwgen
- logrotate
- 中间件
- mongo
- mongo配置文件详解
- mongo安装
- mongo常用命令
- mongo导入导出
- 导出数据的mongojs
- mongo shell
- mongo异常关闭
- mongo的缺点
- mysql
- 安装
- Gitd
- 主从同步
- 常用命令
- 日志清理
- 连接数,最大并发数,超时
- 错误
- 错误1872
- 错误1236
- 错误1-gitd主从报错
- 一些优化
- 服务器硬件优化
- 编译安装
- mysql配置文件优化
- 根据status优化
- 优化思路
- index
- 查询数据库大小
- ubuntu18.04mysql启动脚本
- pure-ftpd
- rabbitmq
- consul
- redis
- 安装
- 配置
- redis-sentinel
- 常用命令
- supervisor启动redis
- freeipa
- ftp
- 错误530根本原因和解决方法
- vsftp
- sftp
- JDK
- java参数
- zabbix
- 安装
- nginx
- 基础
- 1.基础web配置
- 2.nginx的日志格式
- 3.Nginx的请求限制
- 4.Nginx访问控制
- 进阶
- 1.静态资源web服务
- 2.Nginx作为代理服务
- 3.负载均衡
- 4.rewrite模块
- 5.Geoip
- location与proxy_pass
- proxy_set_header参数
- add_header
- 安装
- 4XX5XX重定向
- Nginx resolver explained
- 关于防止自己网页内容被别人iframe的问题
- nginx全局变量
- nginx错误代码
- 平滑升级nginx
- nginx相关资料网站
- nginx配置下载目录
- 反向代理并发数
- php
- 安装centos6,7
- xtrabackup
- apache
- 常用工具
- SSL证书在线工具SSL
- wordpress
- kafka
- nssm
- GoCD
- gocd简介
- gocd一些概念
- gocd客户端环境变量
- 建立一个piplines
- gocd添加nodejs
- supervisor
- mongo,mysql,hadoop比较
- screen
- python
- minio-私有存储桶
- kubernetes
- YAML格式简单说明
- k8s集群常用命令
- 概念
- k8s组件
- 对象
- workloads
- pods
- overview
- pod lifecycle
- init containers
- env向容器暴露pod信息
- controllers
- rs
- deployments
- daemonset
- StatefulSet
- service
- ingress
- volumes及configmap
- pv和pvc
- serviceaccount及认证
- dashboard及分级授权
- flannel&calico
- 调度器,预选策略及优先函数
- 资源指标API及自定义指标API
- helm
- k8s最佳实践
- 配置kubelet
- 简单命令定位问题
- k8s中日志收集-1
- k8s中日志收集-2
- lxcfs
- v1.24以后镜像问题
- 单控制节点集群v1.24以后适用
- 单控制节点集群v1.24前适用
- K8s.1.11.x阿里云安装HA版
- 国内k8s安装指定版本
- 发布及回滚
- 检查yaml文件格式
- pod分配到指定节点
- k8s跨集群访问
- 在docker中查看对应k8s容器日志
- cert-manager
- 问题定位技巧:容器内抓包
- 为容器设置启动时要执行的命令及其入参
- deploy.yaml文件实例
- kube/config
- 系统守护进程预留资源
- k8s集群证书pki过期处理
- pod跑java时内存的运用
- 从外部访问k8s中的pod
- HPA实战
- Docker
- Docker常用命令
- 基本概念
- 镜像
- 容器
- 仓库
- 安装 Docker
- Ubuntu
- Centos
- 镜像加速器
- 使用镜像
- 获取镜像
- 使用 Dockerfile 定制镜像
- Dockerfile 指令详解
- COPY 复制文件
- CMD 容器启动命令
- ENTRYPOINT 入口点
- ENV
- 其他命令
- 参考文档
- Alpine制作JDK8镜像
- Dockerfile示例
- 访问仓库
- nexus
- 最佳实践
- 镜像删除
- 清理docker磁盘空间
- docker容器日志管理
- 镜像基础上构建镜像
- git
- 公钥私钥免登
- 常用命令
- git pull
- git升级
- jenkins
- jenkins使用git
- 设置构建作业
- General
- Source Code Management
- Build Traggers
- Build Environment
- Build
- Post-build Actions
- 高级构建
- 参数化构建作业
- prometheus
- 监控原则
- 第一章 采集数据
- HPA
- meterics-server
- custom metrics
- kube-state-metrics
- node-exporter
- 第二章 prometheus
- prometheus概述
- prometheus基本架构
- prometheus安装
- prometheus的配置和服务发现
- scrape_configs
- kubernetes_sd_config
- relabel_config
- relabel_config例子
- 服务发现配置
- alertmanager_config
- alerting
- configuration
- route
- receivers
- inhibits_rules
- 第三章 展示与告警
- 第四章 PromQL
- rate,irate和delta的区别
- prometheus-operator
- maven
- maven命令
- maven仓库配置
- openstack
- 网络基础
- 计算机网络原理
- 一个URL请求的过程
- 2.记录
- 3.数据链路层
- 4.网络层
- 网络常用命令
- 命令
- iptables
- nc
- ipset
- mtr
- ss
- lsof
- ip
- 抓包
- tcpdump
- 网络排错与观察
- netstat
- traceroute
- dig与nslookup
- 计算机网络协议
- 负载均衡总结性说明
- NAT
- Tinc
- ubuntu
- ubuntu-var-log-下各个日志文件
- apt和dpkg
- systemctl详解
- 关闭系统更新,有些更新可能影响运行的程序
- ubuntu常用命令
- 基础工具journalctl命令
- za
- 恢复阿里云物理备份
- 域名证书申请和更换
- 正则表达式常用
- 服务器上排查问题得头5分钟
- windows
- winserver关闭事件跟踪程序
- windows常用命令
- win10企业LTSC版激活
- windows通过网卡只开80端口
- debug-tools
- win10-1903及以上版本Realtek高清晰音频管理器
- 彻底解决WPS Office Expansion tool弹出问题
- services延迟启动时间修改
- windows服务器定时重启
- windows sc命令
- 防火墙概述
- iptables
- 简单说明
- 例子
- 项目一
- DevOps简介
- 项目介绍
- 高并发内核优化
- gitlab
- gitlab社区和企业版本区别
- gitlab社区版安装
- gitlab指定版本安装
- gitlab安全设置
- gitlab的备份和恢复
- gitlab容器化安装
- jenkins
- jenkins安装
- ubuntu 16.04 install jenkins
- ubuntu 20.04 install jenkins
- jenkins使用git
- jenkins配置第一个项目
- jenkins发布及制作jar镜像
- jenkins安全策略
- gocd
- gocd安装
- k8s中gocd的server和agent模板
- gocd配置第一个项目
- 脚本
- gocd+ldap
- nexus
- 安装和配置
- freeipa
- 介绍
- 安装
- freeipa集成ocserv
- VPN
- 原理
- vpn部署ocserv
- k8s
- k8s高可用集群
- DNSmasq
- SNIproxy
- Tinc
- prometheus
- 简介
- helm安装prometheus
- 采集数据概览
- 采集数据node-exporter
- 采集数据kube-state-metrics
- 采集数据cadvisor和apiservers
- 指标汇总展示
- 监控
- nginx+lua+waf
- 项目二
- 简介
- nacos
- 简介
- nacos配置管理功能
- tengine
- java
- java参数说明及优化
- github快速访问
- amd和arm区别
- AWS
- 负载均衡ALB
