Docker — 从入门到实践
前言
Docker 简介
什么是 Docker
为什么要用 Docker
基本概念
镜像
容器
仓库
安装 Docker
Ubuntu
Debian
Fedora
CentOS
Raspberry Pi
Linux 离线安装
macOS
Windows 10
镜像加速器
开启实验特性
使用镜像
获取镜像
列出镜像
删除本地镜像
利用 commit 理解镜像构成
使用 Dockerfile 定制镜像
Dockerfile 指令详解
COPY 复制文件
ADD 更高级的复制文件
CMD 容器启动命令
ENTRYPOINT 入口点
ENV 设置环境变量
ARG 构建参数
VOLUME 定义匿名卷
EXPOSE 暴露端口
WORKDIR 指定工作目录
USER 指定当前用户
HEALTHCHECK 健康检查
ONBUILD 为他人作嫁衣裳
LABEL 为镜像添加元数据
SHELL 指令
参考文档
Dockerfile 多阶段构建
实战多阶段构建 Laravel 镜像
构建多种系统架构支持的 Docker 镜像
其它制作镜像的方式
实现原理
操作容器
启动
守护态运行
终止
进入容器
导出和导入
删除
访问仓库
Docker Hub
私有仓库
私有仓库高级配置
Nexus 3
数据管理
数据卷
挂载主机目录
使用网络
外部访问容器
容器互联
配置 DNS
高级网络配置
快速配置指南
容器访问控制
端口映射实现
配置 docker0 网桥
自定义网桥
工具和示例
编辑网络配置文件
实例:创建一个点到点连接
Docker Buildx
BuildKit
使用 buildx 构建镜像
使用 buildx 构建多种系统架构支持的 Docker 镜像
Docker Compose
简介
安装与卸载
使用
命令说明
Compose 模板文件
实战 Django
实战 Rails
实战 WordPress
实战 LNMP
Swarm mode
基本概念
创建 Swarm 集群
部署服务
使用 compose 文件
管理密钥
管理配置信息
滚动升级
安全
内核命名空间
控制组
服务端防护
内核能力机制
其它安全特性
总结
底层实现
基本架构
命名空间
控制组
联合文件系统
容器格式
网络
Etcd 项目
简介
安装
集群
使用 etcdctl
Fedora CoreOS
简介
安装
Kubernetes - 开源容器编排引擎
简介
基本概念
架构设计
部署 Kubernetes
使用 kubeadm 部署 kubernetes
在 Docker Desktop 使用
一步步部署 kubernetes 集群
部署 Dashboard
Kubernetes 命令行 kubectl
容器与云计算
简介
腾讯云
阿里云
亚马逊云
小结
实战案例 - 操作系统
Busybox
Alpine
Debian Ubuntu
CentOS Fedora
本章小结
实战案例 - CI/CD
GitHub Actions
Drone
部署 Drone
在 IDE 中使用 Docker
VS Code
podman - 下一代 Linux 容器工具
附录
附录一:常见问题总结
附录二:热门镜像介绍
Ubuntu
CentOS
Nginx
PHP
Node.js
MySQL
WordPress
MongoDB
Redis
Minio
附录三:Docker 命令查询
客户端命令 - docker
服务端命令 - dockerd
附录四:Dockerfile 最佳实践
附录五:如何调试 Docker
附录六:资源链接
归档
Docker Machine
安装
使用
Docker Swarm
主页
资讯
文章
代码
电子书
Docker 中的网络功能介绍
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。