Docker入门
Docker是一个开放源代码软件,是一个开放平台,用于开发、交付(shipping)、运行应用。
简介
Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。
Docker 利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免启动一个虚拟机造成的额外负担。
Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括行程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施。
1.Docker:
- Docker项目
- Docker引擎:Docker引擎(Docker Engine)是一个服务端-客户端结构的应用,主要有这些部分:Docker守护进程、Docker Engine API、Docker客户端。
- Docker守护进程(Docker daemons),也叫 dockerd ,是一个持久化的进程,用户管理容器。守护进程会监听Docker Engine API 的请求。
- Docker Engine API是用于与Docker守护进程交互用的的API。它是一个RESTful API,因此它不仅可以被Docker客户端调用,也可以被wget 和 curl等命令调用。
- Docker客户端,也叫docker,是大部分用户与Docker交互的主要方式。用户通过客户端将命令发送给守护进程。命令会遵循Docker Engine API。
2.Docker注册中心
Docker注册中心(Docker registry)是用于存储Docker的镜像。Docker Hub 是一个公共的注册中心,任何人都可以使用,默认配置下,Docker将会在这里寻找镜像。另外,用户可以自行构建私有注册中心。Docker Datacenter (DDC)的用户,可以直接使用 Docker Trusted Registry (DTR)。3.对象
Docker的对象是指Images、Containers、Networks、Volumes、Plugins等等。
- 容器(Containers)是镜像的可运行的实例。容器可通过API或CLI(命令行)进行操控。
- 镜像(Images)是一个只读模板,用于指示创建容器。镜像分层(layers)构建的,而定义这些层次的文件叫Dockerfile。
- 服务(Services)允许用户跨越不同的Docker守护进程(Docker daemons)的情况下增加容器,并将这些容器分为管理者(managers)和工作者(workers),让他们为swarm共同工作。
Docker是一个应用打包(将应用运行需要的依赖、第三方库、应用打包到一起)、分发(将”安装包(Docker镜像)”上传至镜像仓库便于他人获取和安装)、部署(可以使用命令运行应用,模拟出相同的运行环境)的工具。
用途:
- 应用分发和部署
- 快速测试和学习相关技术,无需关注软件的环境搭建
- 软件版本共存
特性 | 虚拟机 | Docker |
---|---|---|
启动 | 慢(启动操作系统) | 快(进程) |
性能 | 弱于 | 接近原生 |
自动化 | 手动安装 | 命令直接部署环境 |
系统支持量 | 一般是几十个 | 单机支持上千个容器 |
资源占用 | 较高 | 很少 |
安全性 | 较高 | 较弱 |
安装
Install Docker Desktop on Windows
1.启用适用于Linux的Windows子系统
1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
2.启用虚拟机功能
1 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
3.下载Linux内核更新包
4.将WSL2设置为默认版本
1 | wsl --set-default-version 2 |
5.安装Linux分发
国内镜像源 | 国内镜像源地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
中科大镜像站 | https://docker.mirrors.ustc.edu.cn |
阿里云 | https:// |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
1 | "registry-mirrors": [ |
Settings->Docker Engine
镜像安装
Docker Hub Container Image Library
1.Redis
1 | docker run -d -p 6379:6379 --name redis redis:latest |
2.[WordPress](Wordpress - Official Image | Docker Hub)
1 | # docker-co |
1 | docker-compose up -d |