Docker简介
Docker概述
出现背景
将环境与项目一起安装打包,避免部署环境的繁杂工作
及跨平台问题
Java — apk — 发布(应用商店) — 使用apk — 安装即可用
java — jar(环境) — 打包项目带上环境(镜像)— (Docker仓库:商店) — 下载发布的镜像 — 直接运行
开发思想
集装箱(==互相隔离==的项目)
jar — 多个应用(端口冲突)— 交叉并行
Docker利用隔离机制,将服务器利用到极致
历史发展
pass云计算服务+LXC容器技术 — Docker(容器化技术==也是虚拟化技术!==)
比虚拟机轻巧,方便,启动速度快,占用内存小(但完整)
区别:
vm : linux centos 原生镜像 互相隔离,需要开启多个虚拟机
docker : 隔离,镜像(4m+jdk+mysql) 小巧,运行镜像就可以,几M,秒级启动
关于Docker
==基于Go语言开发==
帮助文档:https://docs.docker.com/ 很详细
仓库地址:https://hub.docker.com/ 与git类似
隔离机制
虚拟机(内核+操作环境+APP)
- 资源占用大
- 启动步骤冗余,慢!
Docker(内核+镜像)
- 容器化技术(==不是完整的操作系统==)
- 容器内的应用直接运行在宿主机的内容,容器没有自己的内核,也没有虚拟硬件,所以轻便
优势
更快速的交付和部署
更便捷的升级和扩缩容(镜像一键运行)
更简单的系统运维
更高效的资源利用(内核级别的虚拟化)
基本组成
Client(客户端)
docker build 创建
docker pull 选取
docker run 运行
DOCKER_HOST(服务器)
Images(镜像)==类似于C++中的类==(用于创建容器服务)
Containers(容器)==类似于C++中类创建的对象==(负责运行具体项目)
**Registry(仓库) **
存放镜像的地方
分公有和私有
Docker安装
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。
Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
鉴于CentOS在2024年将不再进行更新维护,我选择在Ubuntu上安装Docker
Ubuntu安装
卸载旧版本
旧版本的 Docker 的名称为 、 或 。在尝试安装之前卸载任何此类旧版本 新版本:dockerdocker.iodocker-engine :::tips sudo apt-get remove docker docker-engine docker.io containerd runc ::: 如果报告未安装这些包,则没关系。apt-get 存储在/var/lib/docker/
中的镜像、容器、卷和网络不是 卸载 Docker 时自动删除。
使用存储库安装
在新主机上首次安装 Docker 引擎之前,您需要 需要设置 Docker 存储库。之后,您可以安装和更新 存储库中的 Docker。
设置存储库
- 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库:
1 |
|
- 添加 Docker 的官方 GPG 密钥:
1 |
|
- 使用以下命令设置存储库:
1 |
|
安装 Docker engine
要安装最新版本,请运行:
1 |
|
通过运行映像验证 Docker 引擎安装是否成功
1 |
|
现在你已经成功安装并启动了Docker engine。用户组存在,但是它不包含任何用户,这就是需要你用sudo
运行docker命令的原因。你可以执行在CentOS安装Docker engine的后续步骤来允许非root用户运行docker命令。
从包安装
如果你不能使用 Docker 的仓库来安装 Docker Engine,你可以 下载适用于您的版本的文件并手动安装。你需要 每次要升级 Docker 引擎时下载一个新文件。
- 转到download.docker.com/linux/ubunt….
- 在列表中选择你的 Ubuntu 版本。
- 转到并选择适用的体系结构。
- 下载以下适用于 Docker 引擎、CLI、containerd 和 和 Docker Compose 包:deb
- containerd.io .deb
- docker-ce .deb
- docker-ce-cli .deb
- docker-compose-plugin .deb
- 安装软件包。将以下示例中的路径更新为 你下载了 Docker 软件包的位置。
1 |
|
Docker 守护程序会自动启动。
- 通过运行映像验证 Docker 引擎安装是否成功:
1 |
|
现在你已经成功安装并启动了Docker engine。用户组存在,但是它不包含任何用户,这就是需要你用sudo
运行docker命令的原因。你可以执行在CentOS安装Docker engine的后续步骤来允许非root用户运行docker命令。
自动化脚本安装
自动化脚本可以自动检测Linux发行版,因此在受支持的Linux发行版中运行自动化脚本的步骤是一致的,如果你想使用自动化脚本来安装Docker engine,请参阅在CentOS中安装Docker engine的使用自动化脚本安装一节。
二进制文件安装
不建议在生产环境中使用二进制文件安装Docker engine,如果你的容器技术专家建议你这么做,那么请换一个专家。 二进制文件安装主要是为了不受支持的平台和测试环境中使用。我将简短的介绍在Linux上安装守护程序和客户端二进制文件。
安装静态二进制文件
1.下载静态二进制压缩包,转到download.docker.com/linux/stati…,选择适合你的压缩包。 2.提取压缩包中的二进制文件
1 |
|
3.这一步可选,将二进制文件移动到可执行文件路径下,如果没有这一步,则必须提供调用可执行文件的路径。
1 |
|
4.启动 Docker 守护进程:
1 |
|
如果尼西亚使用其他选项启动守护进程,请修改上述内容命令或创建并编辑文件/etc/docker/daemon.json
以添加自定义配置选项。
验证是否安装成功
5.通过运行镜像来验证 Docker 是否已正确安装。
1 |
|
此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。
第一次打开Docker的“hello-world”文件会先显示以下内容
1 |
|
这意味着你的Docker安装成功了
我们可以查看刚刚下载的hello-world镜像
1 |
|
也可以查看当前docker版本
1 |
|
Docker卸载
删除安装包:
1 |
|
删除镜像、容器、配置文件等内容:
1 |
|