Docker安装
docker 官方文档:
https://docs.docker.com/get-docker/
docker 中文文档:
https://www.kancloud.cn/jingyucloud/docker/216412
搭建私有仓库参考:
https://zhuanlan.zhihu.com/p/511286328
开放远程API接口参考:
https://blog.csdn.net/ic_esnow/article/details/113284475
一、简介
容器概念
容器是一种轻量级、可移植、自包含的软件运行环境。它允许开发者将一个应用及其全部运行环境——包括代码、运行时、系统工具、系统库以及设置——全部封装在一起。这种封装确保了应用在任何环境中都能以相同的方式运行,无论是在开发人员的个人电脑上、测试环境中、还是在生产环境的服务器或云平台上。
核心特性
- 隔离性
:容器通过操作系统级别的虚拟化实现了进程和资源的隔离。每个容器都运行在一个独立的环境中,并且容器与容器之间、容器与宿主机之间都是相互隔离的。 - 轻量级
:与传统的虚拟机相比,容器不需要额外加载一个完整的操作系统内核,只需利用宿主机的内核即可运行。这大大减少了资源消耗和启动时间。 - 可移植性
:由于容器内包含了应用运行所需的一切,因此可以确保应用在不同的计算环境中运行时的一致性和兼容性。 - 微服务架构的支持
:容器非常适合微服务架构,因为它们允许每个服务单独容器化,这样可以独立地开发和扩展服务。
容器与虚拟机的区别
- 启动时间
:容器只需几秒钟即可启动,而虚拟机可能需要几分钟。 - 性能
:容器直接运行在宿主机的操作系统之上,几乎没有额外开销,因此性能接近物理机。虚拟机则需要额外的资源来运行完整的操作系统。 - 资源占用
:容器共享宿主机的操作系统内核,而虚拟机则需要为每个虚拟机实例运行一个完整的操作系统,因此容器更加节省资源。 - 隔离性
:虚拟机提供了更强的隔离性,因为它们彼此之间以及与宿主机之间是完全独立的。容器虽然也提供了隔离性,但因为它们共享宿主机的内核,所以相对较弱。
容器技术的出现和普及改变了软件开发、部署和运维的方式,使得应用的交付更加快速、高效。Docker 是目前最流行的容器平台之一,但也有其他技术如 Podman、containerd 等。
什么是Docker
Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(默认情况下),更重要的是容器性能开销极低。
核心概念
- 镜像(Image)
:Docker 镜像是用于创建 Docker 容器的模板,可以将其理解为一个只读的文件系统。它提供了容器运行时所需的程序、库、资源、配置等文件,但不包含任何动态数据。用户可以基于镜像启动新的容器实例。 - 容器(Container)
:容器是镜像的运行实例。它可以被启动、开始、停止、删除,每个容器都是相互隔离、保证安全的平台。容器的核心是隔离性和临时性,这意味着当容器被删除时,容器内的更改和数据也会随之消失。 - 仓库(Repository)
:Docker 仓库是集中存放镜像文件的场所。最著名的公共仓库是 Docker Hub,其中包含了数量庞大的镜像供用户下载。除了 Docker Hub,用户还可以创建私有仓库来存放自己的镜像。
工作原理
Docker 使用客户端-服务器(C/S)架构模式。Docker 客户端与 Docker 服务器(Docker Daemon)通信,Docker Daemon 负责构建、运行和分发 Docker 容器。Docker 客户端和服务器可以运行在同一个系统上,也可以通过网络从远程客户端与 Docker Daemon 通信。
主要特点
- 快速、一致地交付应用
:Docker 可以快速构建、测试并部署应用,并确保应用在任何环境中都能以相同的方式运行。 - 响应式扩展与缩减
:根据业务需求,容易地在服务中增加或删除容器来扩展或缩减服务。 - 运行任何地方
:Docker 容器可以在开发者的本地笔记本电脑、物理或虚拟机、数据中心、云服务等任何地方运行。 - 隔离
:Docker 确保每个容器都在自己的隔离环境中运行,使得应用更加安全。 - 轻量级
:Docker 利用 Linux 容器技术,比传统的虚拟化技术更加轻量,提高了系统利用率和性能。
Docker 的出现极大地简化了部署应用的流程,让开发、测试、生产环境之间的切换变得更加容易和快捷,对现代软件开发和运维方式产生了深远影响。
二、Window安装
在Win10及以上系统安装Docker Desktop使用Docker
确保系统安装 Hyper-V 参考文章(
https://www.runoob.com/docker/windows-docker-install.html)
1、在
Docker Desktop下载
网页上点击Docker Desktop for Windows下载或者直接去
官网下载安装包
2、安装包下载好后,直接双击Docker Desktop Installer.exe文件进行安装,把接下来的页面所有选项全部选中
参考:
https://blog.csdn.net/qq_39611230/article/details/108641842
3、安装完成后,打开Docker Desktop应用,在setting页面选择 Docker Engine
内容如下
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": [
"192.168.1.153:5000"
]
}
//registry-mirrors 配置源,这里使用的是163的源
//insecure-registries 私有仓库地址
参考:
https://docs.docker.com/desktop/install/windows-install/
https://www.runoob.com/docker/windows-docker-install.html
https://zhuanlan.zhihu.com/p/191588757
https://blog.csdn.net/BThinker/article/details/123358697
三、CentOS安装
1、选择要安装的平台
Docker要求CentOS系统的内核版本高于3.10
#通过 uname -r 命令查看你当前的内核版本
uname -r
2、选择要安装的操作系统
3、首先卸载已安装的Docker
使用
Root权限
登录 Centos。确保yum包更新到最新。
sudo yum update
在尝试安装新版本之前,请卸载任何此类旧版本以及关联的依赖项,操作系统没有安装过Docker就跳过。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
可能会报告您没有安装这些软件包,卸载 Docker 时,存储在
/var/lib/docker/
其中的映像、容器、卷和网络不会自动删除。
1、您可以设置 Docker 的存储库并从中安装,以便于安装和升级任务。这是推荐的方法。
2、您可以下载 RPM 软件包,手动安装它,并完全手动管理升级。这在无法访问 Internet 的气隙系统上安装 Docker 等情况下很有用。
3、在测试和开发环境中,您可以使用自动化便利脚本来安装 Docker。
4、使用rpm存储库安装
在新主机上首次安装 Docker 引擎之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
4.1、设置仓库
安装
yum-utils
软件包(提供
yum-config-manager
实用程序)并设置存储库。
## 安装Docker所需要的一些工具包
sudo yum install -y yum-utils
## 建立Docker仓库 (映射仓库地址)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.2、安装 Docker Engine
若要安装最新版本,请运行:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果系统提示您接受 GPG 密钥,请验证指纹是否匹配,如果匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,请接受它。
此命令将安装 Docker,但不会启动 Docker。它还会创建一个
docker
组,但是,默认情况下,它不会向该组添加任何用户。
4.3、启动 Docker
sudo systemctl start docker
4.4、通过运行
hello-world
映像来验证 Docker 引擎安装是否成功。
sudo docker run hello-world
5、软件包安装
如果无法使用 Docker
rpm
的存储库安装 Docker 引擎,可以下载
.rpm
版本的文件并手动安装。每次要升级 Docker 引擎时,都需要下载一个新文件。
前往
https://download.docker.com/linux/centos/
并选择您的 CentOS 版本。然后浏览并
x86_64/stable/Packages/
下载
.rpm
要安装的 Docker 版本的文件。
5.1、安装 Docker 引擎,将以下路径更改为下载 Docker 包的路径。
sudo yum install /path/to/package.rpm
Docker 已安装但未启动。组已创建,但未将用户添加到
docker
组。
5.2、启动 Docker。
sudo systemctl start docker
5.3、通过运行
hello-world
映像来验证 Docker 引擎安装是否成功。
sudo docker run hello-world
6、升级Docker 引擎
若要升级 Docker 引擎,请下载较新的包文件并重复安装过程,使用
yum -y upgrade
而不是
yum -y install
,并指向新文件。
使用便捷脚本安装
Docker 在
https://get.docker.com/
提供了一个方便的脚本,用于以非交互方式将 Docker 安装到开发环境中。不建议将方便脚本用于生产环境,但它可用于创建根据需求量身定制的预配脚本。另请参阅使用存储库安装步骤,了解使用软件包存储库进行安装的安装步骤。该脚本的源代码是开源的,您可以在 GitHub 上的
docker-install
存储库中找到它。
在本地运行脚本之前,请始终检查从 Internet 下载的脚本。在安装之前,请熟悉便利脚本的潜在风险和限制:
- 脚本需要
root
或
sudo
权限才能运行。 - 该脚本尝试检测您的 Linux 发行版和版本,并为您配置包管理系统。
- 该脚本不允许您自定义大多数安装参数。
- 该脚本在不要求确认的情况下安装依赖项和建议。这可能会安装大量软件包,具体取决于主机的当前配置。
- 默认情况下,该脚本会安装 Docker、containerd 和 runc 的最新稳定版本。使用此脚本预配计算机时,这可能会导致 Docker 意外的主要版本升级。在部署到生产系统之前,请始终在测试环境中测试升级。
- 该脚本并非旨在升级现有 Docker 安装。使用脚本更新现有安装时,依赖项可能不会更新到预期的版本,从而导致版本过时。
提示:运行前预览脚本步骤
您可以使用以下
--dry-run
选项运行脚本,以了解脚本在调用时将运行哪些步骤:$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh ./get-docker.sh --dry-run
此示例从
https://get.docker.com/
下载脚本并运行它以在 Linux 上安装 Docker 的最新稳定版本:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>
现在,您已成功安装并启动了 Docker 引擎。该
docker
服务在基于 Debian 的发行版上自动启动。在基于发行版(如 CentOS、Fedora、RHEL 或 SLES)上
RPM
,您需要使用相应的
systemctl
or
service
命令手动启动它。如消息所示,默认情况下,非 root 用户无法运行 Docker 命令。
以非特权用户身份使用 Docker,还是以无根模式安装?
安装脚本需要
root
或
sudo
具有权限才能安装和使用 Docker。如果要授予非 root 用户对 Docker 的访问权限,请参阅 Linux 的安装后步骤。您还可以在没有权限的情况下
root
安装 Docker,或配置为在无根模式下运行。有关在无根模式下运行 Docker 的说明,请参阅
以非 root 用户身份运行 Docker 守护程序
。
安装预发行版
Docker 还提供了一个方便的
https://test.docker.com/
脚本,用于在 Linux 上安装 Docker 的预发行版。此脚本等同于 中的
get.docker.com
脚本,但将包管理器配置为使用 Docker 包存储库的测试通道。测试通道包括 Docker 的稳定版本和预发布版本(测试版、候选版本)。使用此脚本可以抢先体验新版本,并在它们作为稳定版本发布之前在测试环境中对其进行评估。
若要从测试通道在 Linux 上安装最新版本的 Docker,请运行:
$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh
使用便捷脚本后升级 Docker
如果使用方便脚本安装了 Docker,则应直接使用包管理器升级 Docker。重新运行便利脚本没有任何好处。如果它尝试重新安装主机上已存在的存储库,则重新运行它可能会导致问题。
卸载 Docker 引擎
卸载 Docker 引擎、CLI、containerd 和 Docker Compose 包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷,请执行以下操作:
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
您必须手动删除任何已编辑的配置文件。
参考:
https://docs.docker.com/engine/install/
https://docs.docker.com/engine/install/centos/