在生产环境使用 Docker
本文是对官方文档的总结与备注。
官方文档:https://docs.docker.com/engine/userguide/
配置 Docker
手动启动 Docker
这一部分内容详情可以查看:https://www.khs1994.com/docker/dockerd.html
$ sudo docked
自动启动容器
https://docs.docker.com/engine/admin/start-containers-automatically/
$ docker run --restart no | on-failure | unless-stopped | always
限制容器资源
https://docs.docker.com/engine/admin/resource_constraints/
内存
-m
或 --memory=4m
--memory-swap
--memory-swappiness
--memory-reservation
--kernel-memory
--oom-kill-disable
CPU
--cpus
--cpu-period
--cpu-quota
--cpuset-cpus
--cpu-shares
清除无用数据
https://docs.docker.com/engine/admin/pruning/
https://www.khs1994.com/docker/prune.html
Keep containers alive during daemon downtime
https://docs.docker.com/engine/admin/live-restore/
systemd
https://docs.docker.com/engine/admin/systemd/
使用本地私有 Docker 仓库
https://www.khs1994.com/docker/registry.html
容器日志
https://docs.docker.com/engine/admin/logging/view_container_logs/
$ docker logs CONTAINER_NAME
$ docker service logs SERVICE_NAME
日志驱动
安全
https://docs.docker.com/engine/security/security/
Swarm mode
存储配置数据
https://docs.docker.com/engine/swarm/configs/
docker config
命令
以 redis
为例
$ echo "This is a config" | docker config create my-config -
# 配置文件默认挂载到 /my-config ,也可以通过 target 进行配置
$ docker service create
--name redis
# --config my-config
--config source=my-config,target=/config/path
redis:alpine
$ docker config ls
# 当配置文件被使用时,不能删除
$ docker config rm my-config
存储敏感数据
https://docs.docker.com/engine/swarm/secrets/
docker secret
命令
以 nginx
为例
$ docker secret create site.key site.key
$ docker secret create site.crt site.crt
$ docker secret create site.conf site.conf
$ docker secret ls
# 默认挂载到 /run/secrets/*** ,你可以通过 target 配置
$ docker service create
--name nginx
--secret site.key
--secret site.crt
--secret source=site.conf,target=/etc/nginx/conf.d/site.conf
--publish target=3000,port=443
nginx:latest
sh -c "exec nginx -g 'daemon off;'"
在一个容器中运行多个服务
https://docs.docker.com/engine/admin/multi-service_container/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Go语言探险】线上奇怪日志问题的排查
- 探索 Apache NIFI 集群的高可用
- 面试被问:Spring Boot中Tomcat是如何启动的?
- Spring Boot 实现定时任务的动态增删启停等管理!
- Apache NIFI ExecuteScript组件脚本使用教程
- Redis必会的性能监控指标汇总
- 带你体验Apache NIFI新建数据同步流程(NIFI入门)
- Spring JPA 存储库接口定义
- 如何给Apache开源项目贡献代码
- 深入解析Apache NIFI的调度策略
- Linux 帮助命令及工具(tldr,man,help,info)
- Json Jolt教程
- Linux 日常操作
- 回顾|腾讯云 CFS 文件存储给 Serverless 云函数带来的业务新场景
- Apache NIFI Run Duration深入理解