实验环境:Centos7.6
一、docker等名词简介
Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙盒机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 的核心概念
- 镜像(Image):Docker 镜像是用于创建 Docker 容器的模板,可以把它想象成一个操作系统的 ISO 文件。镜像是只读的,当容器启动时,一个新的可写层被加载到镜像顶部。
- 容器(Container):容器是镜像的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离、保证安全的平台。
- 仓库(Repository):仓库是集中存放镜像文件的地方。有公开的仓库服务如 Docker Hub 和 Google Container Registry,也可以搭建私有的仓库。
Docker 的优势
- 快速、一致地交付你的应用:Docker 允许开发者在本地构建、测试并分享 Docker 容器。这些容器可以在开发生命周期中的任何地方被部署,从而保证了一致性和速度。
- 响应式部署和扩展:Docker 基于容器的平台允许高度的自动化和微服务架构,这意味着您的应用和服务可以被快速、频繁且可靠地扩展或更新。
- 在同一硬件上运行更多的工作负载:Docker 提供了轻量级的虚拟化,使得你可以在相同的硬件上运行更多的负载,这有助于提高资源利用率和降低开销。
使用场景
- 简化配置:通过为每个应用创建一个容器来避免安装和配置问题。
- 代码流水线管理:自动化的持续集成和部署。
- 提高开发效率:通过使用 Docker 容器,开发者可以在一个标准化的环境中工作,无需担心应用在不同环境下运行时可能出现的问题。
- 应用隔离:确保每个应用和服务运行在其自己的容器中,与其他服务隔离。
- 环境一致性:在开发、测试和生产环境中保持环境一致性,减少“在我机器上运行正常”的问题。
总结:Docker 已经成为微服务架构和云原生应用开发的重要组成部分,是现代 DevOps 实践的关键工具之一
二、docker安装步骤
1).卸载旧版本
如之前有安装过docker,卸载命令如下
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2).安装依赖包
yum -y install gcc
yum -y install gcc-c++
3).安装软件包
yum install -y yum-utils
4).设置 stable 镜像仓库
# 使用国内阿里云仓库链接下载
这里不推荐从官网下载,因为是外网链接,容易超时报错。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5).更新 yum 软件包索引
yum makecache fast
6).安装 Docker 引擎
yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
7).启动 Docker
systemctl start docker # 启动
systemctl status docker # 查看状态
systemctl enable docker # 设置开机自启
ps -ef | grep docker # 查看进程
8).测试是否安装成功
#第一次输入会报错,显示本地没有该镜像,得去远程仓库里拉取镜像
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
# 再次输入即可
docker run hello-world
9).卸载docker
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
三、配置镜像加速
#我这里使用的是阿里云的镜像加速,打开阿里云工作台->搜索容器镜像服务 ACR
复制镜像加速代码命令至系统中
重启docker,完成配置镜像加速。
四、使用docker拉取并部署halo CMS
1).检查docker版本
~ docker -v
#检查docker compose版本:**确保2.0以上版本
~ docker compose version
- **下载Halo镜像:**在docker hub下载Halo-V2.10版本镜像
~ docker pull halohub/halo:2.10
2).创建挂载目录
- mkdir-p /data/halo &&cd /data/halo
3).创建Halo容器:
Halo 2与1.x 版本不兼容;
此命令默认使用自带的 H2 Database 数据库,另外可以额外单独使用Mysql数据库进行连接。
~ docker run -it -d --name halo -p 8090:8090 -v /data/halo/.halo2:/root/.halo2 halohub/halo:2.10
- 查看halo容器状态:检查halo容器状态,确保halo容器正常启动
- docker ps
- 检查halo容器日志: 检查halo容器运行日志,确保halo服务正常启动。
- docker logs halo
- 查看本地IP地址
- ifconfig
- 然后如果你是云服务器的话,要在防火墙规则上面添加允许8090端口开放的规则,我这里是腾讯云服务器举例
4).进入Halo初始化页面
- 访问地址:http://IP/8090/console/setup,将IP替换为自己服务器IP地址。
**站点名称:**myweb
**邮箱:**admin@qq.com
**用户名:**admin
**密码:**自定义
点击初始化即可