1、docker的简单介绍
Docker是一个开源的容器化平台,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,然后在任何支持Docker的环境中运行。
- 核心概念
- 镜像(Image):Docker镜像是一个只读的模板,它包含了运行一个应用程序所需的所有文件、配置和依赖项。可以将镜像看作是一个应用程序的“快照”,它可以被复制和分发到不同的环境中。
- 容器(Container):容器是基于镜像创建的可运行实例。每个容器都相互隔离,拥有自己独立的文件系统、网络和进程空间。容器可以被启动、停止和删除,并且可以在不同的主机上进行迁移。
- 仓库(Repository):Docker仓库是存储镜像的地方。可以将镜像推送到仓库中,也可以从仓库中拉取镜像。公共的Docker仓库如Docker Hub提供了大量的官方和社区维护的镜像,用户也可以搭建私有的仓库来存储自己的镜像。
- 主要功能
- 应用隔离:通过容器化技术,Docker可以将不同的应用程序及其依赖项隔离开来,避免它们之间的相互干扰。这使得多个应用程序可以在同一台物理服务器上安全地运行,提高了服务器的资源利用率。
- 快速部署:由于镜像包含了应用程序的所有依赖项,因此可以在任何支持Docker的环境中快速启动容器,实现应用程序的快速部署。相比传统的部署方式,Docker大大减少了部署时间和工作量。
- 可移植性:Docker容器可以在不同的操作系统和硬件平台上运行,只要这些平台支持Docker。这使得开发者可以在开发环境中创建容器,然后在生产环境中无缝地部署和运行,提高了应用程序的可移植性和兼容性。
- 易于管理:Docker提供了一系列的命令和工具,用于管理镜像、容器和仓库。可以方便地创建、启动、停止、删除容器,以及对镜像进行构建、推送和拉取等操作。此外,Docker还支持容器的自动化管理和编排,如使用Kubernetes等工具来实现容器的集群管理和调度。
- 应用场景
- Web应用程序部署:将Web应用程序及其后端服务(如数据库、缓存等)分别容器化,然后进行部署。这样可以实现应用程序的快速部署和扩展,同时便于管理和维护。
- 微服务架构:Docker非常适合微服务架构,将每个微服务打包成一个容器,使得各个微服务之间相互独立、易于扩展和维护。可以根据不同微服务的负载情况,灵活地调整容器的数量,实现资源的合理分配。
- 持续集成和持续部署(CI/CD):在CI/CD流程中,使用Docker可以方便地创建构建环境和测试环境,确保每次代码提交都能在一致的环境中进行构建和测试。同时,也可以将构建好的镜像直接部署到生产环境中,实现快速、可靠的部署。
- 开发和测试环境:为开发人员提供一致的开发环境,避免因环境差异导致的问题。开发人员可以在自己的本地机器上使用Docker创建与生产环境相似的开发和测试环境,方便进行开发、调试和测试工作。
2、centos上部署docker
2.1 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.2 设置阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.3 docker引擎的安装
yum install -y docker-ce
– 默认是最新的docker版本
yum install -y docker-ce-24.0.1 docker-ce-cli-24.0.1 containerd.io
– 我们也可以自选想要安装的docker版本
2.4 系统环境优化
关闭防火墙、关闭selinux
systemctl stop firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
#重启docker
systemctl start docker.service
systemctl enable docker.service
2.5 配置docker的镜像加速 (目前亲测可用)
#加速地址
{
"registry-mirrors": ["https://hub.littlediary.cn/"]
}
#一键式命令部署加速地址
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com"]
}
EOF
2.6 重启docker的守护进程、重启docker
systemctl daemon-reload
systemctl restart docker
2.7 配置虚拟机的网络优化、开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
至此centos上docker的部署就完成了
3、ubuntu上部署docker
3.1 Ubuntu上的部署我们可以参考以下的官方网站
https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3cdb1b11fLzQpP
在此我也帮大家整理了一下 (其实就是搬运了一下官网内容)
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# step 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Step 3: 写入软件源信息
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Step 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
我们本项目用的是指定版本的安装方式
apt -y install docker-ce=5:24.0.1-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.1-1~ubuntu.22.04~jammy containerd.io docker-buildx-plugin docker-compose-plugin
3.2 同样的我们也需要给docker安装镜像加速
#地址如下
{
"registry-mirrors": [
"https://docker.unsee.tech",
"https://dockerpull.org",
"https://docker.lpanel.live",
"https://dockerhub.icu"
]
}
3.3 最后安装校验
韶华易逝,劝君惜取少年时,诸君共勉