目录
一、Docker介绍
1、概述
Docker 是一个用于开发、发布和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础设施分离,以便您可以快速交付软件。借助 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的方法来传送、测试和部署代码,您可以显着减少编写代码和在生产中运行代码之间的延迟。
Docker 提供了在称为容器的松散隔离环境中打包和运行应用程序的能力。隔离和安全性使您可以在给定主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此您不需要依赖主机上安装的内容。您可以在工作时共享容器,并确保与您共享的每个人都获得以相同方式工作的相同容器。
Docker 提供了工具和平台来管理容器的生命周期:
- 使用容器开发您的应用程序及其支持组件。
- 容器成为分发和测试应用程序的单元。
- 准备就绪后,将应用程序作为容器或编排服务部署到生产环境中。无论您的生产环境是本地数据中心、云提供商还是两者的混合,这都是一样的。
官方地址(英文版):
官方地址(中文版):
2、特点
Docker 基于容器的平台支持高度可移植的工作负载。 Docker 容器可以在开发人员的本地笔记本电脑、数据中心的物理机或虚拟机、云提供商或混合环境中运行。
Docker 的可移植性和轻量级特性还使得动态管理工作负载、根据业务需求几乎实时地扩展或拆除应用程序和服务变得很容易。
Docker 轻量且快速。它为基于虚拟机管理程序的虚拟机提供了可行且经济高效的替代方案,因此您可以利用更多服务器容量来实现业务目标。 Docker 非常适合高密度环境以及需要用更少的资源做更多事情的中小型部署。
3、能够做什么
快速、一致地交付您的应用程序
Docker 允许开发人员使用提供应用程序和服务的本地容器在标准化环境中工作,从而简化了开发生命周期。容器非常适合持续集成和持续交付 (CI/CD) 工作流程。
考虑以下示例场景:
- 您的开发人员在本地编写代码并使用 Docker 容器与同事共享他们的工作。
- 他们使用 Docker 将应用程序推送到测试环境中并运行自动和手动测试。
- 当开发人员发现错误时,可以在开发环境中修复它们,并将其重新部署到测试环境中进行测试和验证。
- 测试完成后,向客户提供修复就像将更新的映像推送到生产环境一样简单。
二、Docker架构
Docker 使用Go 编程语言编写 ,并利用 Linux 内核的多个特性来提供其功能。 Docker 使用一种namespaces
称为容器的技术来提供隔离的工作空间。当您运行容器时,Docker 会为该容器创建一组命名空间。这些命名空间提供了一层隔离。容器的每个方面都在单独的命名空间中运行,并且其访问仅限于该命名空间。
Docker 使用客户端-服务器架构。 Docker 客户端与 Docker 守护进程通信,后者负责构建、运行和分发 Docker 容器的繁重工作。 Docker 客户端和守护进程可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护进程。 Docker 客户端和守护进程使用 REST API 通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。
三、Linux环境下部署Docker
1、更换centos镜像源
本案例使用CentOS7,因为官方已经停服,需要更新yum镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum update
2、检查docker安装环境
(可不操作)
uname -r
安装docker的前提条件:
1.必须是64位CPU架构的计算机,Docker目前不支持32位CPU;
2.运行Linux3.8或更高版本内核,CentOS时内核必不小于3.10;
3.内核必须支持一种合适的存储驱动,可以是Device Manager、AUFS、vfs、btrfs、以及默认的驱动Device Mapper中的一个;
4.内核必须支持并开启cgroup和命名空间namespace功能。
3、安装需要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum docker 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、查看所有版本
(可不操作)
yum list docker-ce --showduplicates | sort -r
6、安装docker
安装docker 默认安装最新稳定版
yum install -y docker-ce
也可以指定版本
yum -y install docker-ce-18.03.1.ce
7、启动docker
systemctl start docker
8、设置开机启动
systemctl enable docker
9、验证
docker version
10、配置docker镜像加速
docker拉取镜像太慢了,所以采用镜像加速,简单修改配置文件实现。
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://ha65u7j9.mirror.aliyuncs.com"
]
}
EOF
或
vim /etc/docker/daemon.json
文件内添加
{ "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://ha65u7j9.mirror.aliyuncs.com" ] }
修改完后需执行如下命令
systemctl daemon-reload
systemctl restart docker
11、开启数据包转发
开启数据包转发,否则无法远程访问处于启动状态的Docker容器,步骤如下:
①、修改/usr/lib/sysctl.d/50-default.conf文件,如下所示:
tee /usr/lib/sysctl.d/50-default.conf <<-'EOF'
# 默认值为0,0表示禁止数据包转发,1表示允许
net.ipv4.ip_forward = 1
EOF
②、重启网络 systemctl restart network—>执行sysctl net.ipv4.ip_forward指令,如下图所示:
sysctl net.ipv4.ip_forward
结果如下 net.ipv4.ip_forward = 1
12、关闭镜像
(可不操作)
systemctl stop docker
四、Windows环境下部署Docker
1、安装wsl
参考地址:Windows安装wsl并部署Linux操作系统_适用于 linux 的 windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.e-CSDN博客
查看安装情况
2、Docker Desktop软件下载
下载地址:docker-toolbox-windows-docker-for-windows-stable安装包下载_开源镜像站-阿里云
3 、Docker Desktop安装
其它参考
环境搭建-Windows系统搭建Docker_windows docker-CSDN博客