Docker简介

Docker概述

出现背景

将环境与项目一起安装打包,避免部署环境的繁杂工作

及跨平台问题

Java — apk — 发布(应用商店) — 使用apk — 安装即可用

java — jar(环境) — 打包项目带上环境(镜像)— (Docker仓库:商店) — 下载发布的镜像 — 直接运行

开发思想

集装箱(==互相隔离==的项目)

jar — 多个应用(端口冲突)— 交叉并行

Docker利用隔离机制,将服务器利用到极致

历史发展

pass云计算服务+LXC容器技术 — Docker(容器化技术==也是虚拟化技术!==)

比虚拟机轻巧,方便,启动速度快,占用内存小(但完整)

区别:

vm : linux centos 原生镜像 互相隔离,需要开启多个虚拟机

docker : 隔离,镜像(4m+jdk+mysql) 小巧,运行镜像就可以,几M,秒级启动

关于Docker

==基于Go语言开发==

官网:https://www.docker.com/

帮助文档:https://docs.docker.com/ 很详细

仓库地址:https://hub.docker.com/ 与git类似

隔离机制

image-20230726232454445

​ 虚拟机(内核+操作环境+APP)

  • 资源占用大
  • 启动步骤冗余,慢!

​ Docker(内核+镜像)

  • 容器化技术(==不是完整的操作系统==)
  • 容器内的应用直接运行在宿主机的内容,容器没有自己的内核,也没有虚拟硬件,所以轻便

优势

更快速的交付和部署

更便捷的升级和扩缩容(镜像一键运行)

更简单的系统运维

更高效的资源利用(内核级别的虚拟化)

基本组成

image-20230728124422847

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。

设置存储库

  1. 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库:
1
2
3
4
5
6
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
  1. 添加 Docker 的官方 GPG 密钥:
1
2
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. 使用以下命令设置存储库:
1
2
3
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker engine

要安装最新版本,请运行:

1
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

通过运行映像验证 Docker 引擎安装是否成功

1
sudo docker run hello-world

现在你已经成功安装并启动了Docker engine。用户组存在,但是它不包含任何用户,这就是需要你用sudo运行docker命令的原因。你可以执行在CentOS安装Docker engine的后续步骤来允许非root用户运行docker命令。

从包安装

如果你不能使用 Docker 的仓库来安装 Docker Engine,你可以 下载适用于您的版本的文件并手动安装。你需要 每次要升级 Docker 引擎时下载一个新文件。

  1. 转到download.docker.com/linux/ubunt….
  2. 在列表中选择你的 Ubuntu 版本。
  3. 转到并选择适用的体系结构。
  4. 下载以下适用于 Docker 引擎、CLI、containerd 和 和 Docker Compose 包:deb
    • containerd.io .deb
    • docker-ce .deb
    • docker-ce-cli .deb
    • docker-compose-plugin .deb
  5. 安装软件包。将以下示例中的路径更新为 你下载了 Docker 软件包的位置。
1
2
3
4
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb

Docker 守护程序会自动启动。

  1. 通过运行映像验证 Docker 引擎安装是否成功:
1
sudo docker run hello-world

现在你已经成功安装并启动了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
tar xf /path/to/<FILE>.tar.gz

3.这一步可选,将二进制文件移动到可执行文件路径下,如果没有这一步,则必须提供调用可执行文件的路径。

1
sudo cp docker/* /usr/bin/

4.启动 Docker 守护进程:

1
sudo dockerd &

如果尼西亚使用其他选项启动守护进程,请修改上述内容命令或创建并编辑文件/etc/docker/daemon.json以添加自定义配置选项。

验证是否安装成功

5.通过运行镜像来验证 Docker 是否已正确安装。

1
sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。

image-20230802220618685

第一次打开Docker的“hello-world”文件会先显示以下内容

1
2
3
4
5
Unable to find image 'hello-world:latest' locally	(本地无此文件)
Pulling repository hello-world (从Docker官方库中拉取相关信息)
91c95931e552: Download complete
a8219747be10: Download complete
Status: Downloaded newer image for hello-world:latest(下载完成)

这意味着你的Docker安装成功了

我们可以查看刚刚下载的hello-world镜像

1
docker images

image-20230802223312044

也可以查看当前docker版本

1
docker -v

image-20230802224541726

Docker卸载

删除安装包:

1
sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

1
2
sudo rm -rf /var/lib/docker
# docker默认工作路径!

阿里云镜像加速


Docker简介
http://example.com/2023/07/30/Docker/Docker简介/
作者
Jwj-Learning
发布于
2023年7月30日
许可协议