Docker教程一,Docker 安装和基本认识
Docker教程二,Docker 基本命令学习
Docker教程三,Docker 安装Mysql集群
Docker教程四,Docker 安装Redis集群
Docker教程五,Dockerfile 学习
Docker教程六,Docker网络和Docker-compose 容器编排
Docker教程七,Docker 监控工具
Docker教程八,IDEA + Docker + SpringBoot + Nginx + MySQL集群 + Redis集群 + MongoDb 集群,微服务发布,负载均衡实现。
Docker教程九,Docker私仓搭建
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker
的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这类问题。docker可以让程序员更专注开发。Docker 和虚拟机对比
容器 | 虚拟机 | |
---|---|---|
启动时间 | 秒级 | 分钟级 |
硬盘使用 | 一般为Mb | 一般为Gb |
速度 | 接近原生 | 比较慢 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
Docker 三个基本概念
Docker 其他概念
概念 | 说明 |
---|---|
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker SDK 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker Registry | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
本人安装Docker环境,Windows11下WSL:Ubuntu18.04 子系统
使用 WSL2 安装 Docker 可参考这篇文章。Windows WSL2 Ubuntu18.04 安装 Docker
相对于大部分程序员来说,开发环境是在Windows环境下,而实际生产环境是在Linux上的,我希望能在Windows上搭建一套完美的开发环境,而我之后 MySQL 集群、Redis 集群、MongoDB的安装都会在 WSL2 上。
其他环境的安装可参考官网的链接教程,步骤大同小异。
Ubuntu 安装参考:https://docs.docker.com/engine/install/ubuntu/
Centos 安装参考:https://docs.docker.com/engine/install/centos/
Debian 安装参考:https://docs.docker.com/engine/install/debian/
Windows 安装参考:https://docs.docker.com/desktop/windows/install/
Mac 安装参考:https://docs.docker.com/desktop/mac/install/
安装完 Docker 之后,建议配置阿里云镜像加速,Docker 默认会去国外的仓库地址下载镜像,速度会很慢。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://c2nmylfp.mirror.aliyuncs.com"]
}
EOF
# WSL 命令
sudo service docker start
sudo service docker stop
# centos6 的命令
sudo chkconfig daemon-reload
sudo service docker restart
# centos7 的命令
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker是一个 C/S(Client-Server) 结构的系统,后端是一个松耦合架构,众多模块各司其职。
Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从容器接收命令并管理运行在主机上的容器。
Docker 运行的基本流程为:
docker run hello-world
分析:
Docker run hello-world流程分析图如下。