Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖项打包成一个可移植的容器,然后发布到任意流行的 Linux 或 Windows 操作系统上,以实现虚拟化。以下是关于 Docker 的详细介绍:
一、核心概念
- 镜像(Image):Docker 镜像类似只读模板,涵盖运行应用所需的全部内容,如代码、运行时环境、系统工具、系统库和设置等。可将其视为软件副本,包含软件运行的所有必备要素。例如,Python 应用镜像会包含 Python 解释器、应用代码及相关依赖库。
- 容器(Container):容器是镜像的运行实例,是轻量级、可运行的沙盒环境,容器间相互隔离。它能进行启动、停止、删除等操作,且有独立的文件系统、CPU、内存等资源。比如基于 Web 应用镜像启动的容器,可提供 Web 服务。
- 仓库(Repository):仓库是集中存放镜像文件的地方,类似于代码仓库。Docker Hub 是官方公共仓库,用户能下载开源镜像,也可上传自己的镜像。企业还能搭建私有仓库,用于存储和管理内部镜像。
二、主要优势
- 轻量级:Docker 容器基于操作系统内核特性实现隔离,无需额外操作系统层,占用资源少、启动速度快。虚拟机启动可能需几分钟,而 Docker 容器几秒即可启动。
- 可移植性:容器打包了应用及其依赖环境,能在不同环境快速部署,实现 “一次构建,到处运行”,只要安装 Docker 就能运行容器。
- 易于部署和扩展:借助 Docker Compose 等工具,可轻松定义和管理由多个容器组成的复杂应用系统,实现快速部署和水平扩展。例如大型 Web 应用,可由多个容器分别运行 Web 服务器、数据库、缓存等组件,通过 Docker Compose 方便启动和管理。
三、应用场景
- Web 应用的开发与部署:开发人员可在本地用 Docker 容器进行开发和测试,再将容器部署到生产环境,确保开发、测试和生产环境一致。
- 持续集成与持续交付(CI/CD):Docker 能与 Jenkins、GitLab CI 等 CI/CD 工具集成,实现代码自动构建、测试和部署。开发人员提交代码后,CI/CD 系统自动构建 Docker 镜像并测试,通过后部署到生产环境。
- 微服务架构:在微服务架构中,每个微服务可独立打包成 Docker 容器,便于管理和扩展。不同微服务可使用不同技术栈,通过容器间通信实现系统功能。
四、部署方式
1.指令部署安装 Docker
Ubuntu 系统
若使用 Ubuntu系统,可按以下步骤安装 Docker
①更新系统包索引,以确保获取到最新的软件包信息。
sudo apt update
②安装必要的依赖包,这些依赖包能让 apt
使用 HTTPS 源
sudo apt install apt-transport-https ca-certificates curl software-properties-common
③添加 Docker 的官方 GPG 密钥,用于验证下载的 Docker 软件包的完整性。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
④设置稳定的 Docker 仓库,这样 apt
就能从官方仓库获取 Docker 相关软件包。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
⑤再次更新包索引,使新添加的 Docker 仓库生效。
sudo apt update
⑥安装 Docker Engine 及其相关组件。
sudo apt install docker-ce docker-ce-cli containerd.io
⑦验证 Docker 是否安装成功,通过运行 hello-world
镜像来测试。
sudo docker run hello-world
CentOS 系统
若使用 CentOS 系统,可按以下步骤安装 Docker
①卸载旧版本的 Docker(如果系统中已经安装了)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
②设置 Docker 仓库,让系统知道从哪里下载 Docker 软件包。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
③安装 Docker Engine 及其相关组件。
sudo yum install docker-ce docker-ce-cli containerd.io
④启动 Docker 服务,并设置为开机自启,确保每次系统重启后 Docker 服务都会自动启动。
sudo systemctl start docker
sudo systemctl enable docker
⑤验证 Docker 是否安装成功,运行 hello-world
镜像进行测试。
sudo docker run hello-world
使用 Docker
在成功安装 Docker 后,就可以使用以下常见命令来操作 Docker 了:
①拉取镜像:以拉取 Nginx 镜像为例,使用 docker pull
命令从 Docker 仓库下载镜像。
docker pull nginx
②运行容器:以 Nginx 镜像为例,使用 docker run
命令启动一个容器。-d
参数表示让容器在后台运行,-p 80:80
表示将容器的 80 端口映射到主机的 80 端口。
docker run -d -p 80:80 nginx
③查看容器状态:使用 docker ps
命令查看正在运行的容器,若要查看所有容器(包括已停止的),可使用 docker ps -a
命令。
docker ps
docker ps -a
④停止和删除容器:使用 docker stop
命令停止正在运行的容器,使用 docker rm
命令删除容器。请将 <容器 ID 或名称>
替换为实际的容器 ID 或名称。
docker stop <容器 ID 或名称>
docker rm <容器 ID 或名称>
2.宝塔面板部署(推荐,最简单,支持一键部署)
安装宝塔面板
不同系统安装宝塔面板的命令如下:
CentOS 系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu 系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Debian 系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
安装完成后,按照提示在浏览器中访问宝塔面板的地址,使用用户名和密码登录。
在宝塔面板中部署 Docker
一、Docker 的一键安装
登录宝塔面板后,在左侧栏中找到 “Docker” 选项,该选项提供了一键安装 Docker 的功能。用户只需点击相应按钮,宝塔面板便会自动执行安装流程,无需手动输入复杂的安装指令。这种一键式的安装方式,极大地简化了 Docker 的安装步骤,节省了用户的时间和精力,尤其适合对技术操作不太熟悉的用户。
二、Docker 应用商店的丰富镜像资源
完成 Docker 的安装后,进入 Docker 页面,用户会发现其中的应用商店功能。该应用商店汇集了丰富多样的 Docker 镜像,广泛涵盖了各种常见的应用场景。
三、一键部署的便捷操作
应用商店中的所有 Docker 镜像都支持一键部署。用户在应用商店中浏览并找到自己需要的镜像后,只需点击对应的安装按钮,系统便会自动执行一系列繁琐的操作,包括镜像的拉取、配置以及容器的创建和启动等。
以部署 MySQL 数据库为例,用户在应用商店中搜索到 MySQL 镜像,点击安装,在弹出的简单配置窗口中设置好数据库的用户名、密码等必要参数,确认后,系统即可快速完成 MySQL 容器的部署,用户无需深入了解 Docker 的复杂操作,就能迅速拥有一个可正常使用的数据库环境。
四、灵活的镜像获取与识别机制
即便应用商店中没有用户所需的特定镜像,也无需担心。用户可以通过linux服务器指令的方式从 Docker 官方仓库或其他可信源下载镜像。在完成镜像的下载后,宝塔面板具备自动识别本地镜像的能力。
具体来说,当用户使用指令将镜像下载到本地服务器后,宝塔面板会实时扫描服务器上的 Docker 镜像存储位置。一旦发现新的镜像文件,宝塔面板会自动将其纳入管理范畴,用户可以在宝塔面板的 Docker 镜像管理界面中查看和管理这些通过指令下载的镜像。
五、总结
总之,Docker 在功能上优势显著,能实现应用的快速打包、便捷迁移,还提供轻量隔离环境,助力高效开发测试。无论指令部署的深度掌控,还是宝塔面板部署的简便直观,都各有便利。愿你借助 Docker,开启高效应用管理新旅程,充分发挥其多元功能,为项目添彩。
(ps:由于自身知识和经验有限,文章可能有错误的地方,若您发现文中存在疑问或错误之处,欢迎指出。)