Docker
官网:https://www.docker.com Docs:https://docs.docker.com
Docker 是一个开源的容器引擎,它基于 LCX 容器技术,使用 Go 语言开发
- 源码托管在 GitHub 上,并遵循 Apache 2.0 协议
Docker 是一个 C / S 结构的系统,客户端( 指令 )通过 Socket 访问运行在宿主机上的 Docker 的守护进程( 服务 )
- Docker 客户端:Docker Client,用于与 Docker 进行交互的最主要方式
- 连接本地服务端:当在终端中输入 Docker 指令时,就会在服务端产生相应的作用,并把结果返回给客户端
- 连接远程服务端:除本地服务端外,还可以通过更改或指定 DOCKER_HOST 连接远程服务端
- Docker 服务端:Docker daemon,其实就是 Docker Server // Docker 核心技术:
- 它负责监听 Docker API 请求( 如,Docker Client ),并管理 Docker 对象: 镜像、容器、数据卷、网络
- Docker 仓库:Docker Registries,专门用于存储镜像的云服务环境
- Docker Hub,是一个公有的存放镜像的地方,当然,也可以自己搭建私有仓库
使用 Docker,可以轻松的为任何应用创建一个轻量级、可移植、自给自足的容器,快速解决生产问题,主要表现为:
- 保证程序运行环境的一致性
- 降低配置开发环境、生产环境的复杂度和成本
- 实现程序的快速部署和分发
Docker 核心技术
# 安装 Docker _ 配置阿里云镜像加速
Install Docker Desktop for Mac// 帮助文档- Install Docker Engine on Linux( CentOS ) // 帮助文档
- Docker 的生命周期管理:启动、关闭、重启、状态及卸载
- 常见 bug:普通用户登录的状况下,在使用 docker images 时,必须添加 sudo
# Docker 常用命令:帮助命令、镜像命令、容器命令、其他命令
- 镜像:一个 Docker 的可执行文件,其中包括:运行应用程序所需的代码内容、依赖库、环境变量和配置文件等
- 容器:简单来说就是:镜像被运行起来后的实例,通过镜像可以创建一个或多个容器
- Docker 利用容器技术,独立运行一个或一组应用 // 虚拟化技术和容器技术
- 常用部署:使用 Docker 部署 Nginx
- Docker Compose // 使用 docker-compose 部署 MySQL
- 数据卷:容器与宿主机之间、容器与容器之间的共享存储方式、类似于虚拟机与主机之间的共享文件目录
- Docker 容器中的数据管理:数据卷( 挂载 ) & 数据卷容器 _ 应用:数据备份、数据还原
- Docker 网络:简单来说就是,外部或容器之间,如何访问的网络方式,如:bridge 模式、host 模式
- Docker 网络架构
- 原生网络模式
- 容器互联
- 自定义网络模式( 推荐 )