目录

郝的个人博客

记录精彩的程序人生

X

docker-compose部署solo-in-docker个人博客系统

docker-compose部署solo-in-docker个人博客系统

docker及docker compose安装

配置docker官方仓库源

yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

该语句是用于在基于CentOS的Linux系统中通过Yum包管理器添加Docker CE(社区版)的软件仓库配置。具体含义和步骤如下:

  1. yum config-manager:这是Yum的命令行工具,用来管理Yum的配置文件及相关的软件仓库。
  2. --add-repo:这是一个参数,表示要添加一个新的软件仓库源到系统的Yum配置中。
  3. https://download.docker.com/linux/centos/docker-ce.repo:这个URL指向的是Docker官方提供的适用于CentOS系统的Docker CE软件仓库配置文件。当执行这个命令后,Yum会从指定的URL下载一个.repo格式的配置文件,并将其内容添加到系统的Yum仓库配置目录下。

整个命令的作用就是允许Yum可以从Docker官方网站的仓库下载和安装Docker CE的相关软件包,后续使用yum install docker-ce等命令安装或更新Docker CE

更新系统保持软件最新

自动更新软件包,保持系统当前软件是最新版本。

yum update -y

yum update -y 是在基于RPM的Linux发行版(如CentOS、RHEL等)中使用Yum包管理器更新系统软件包的一个命令。具体含义如下:

  • yum: 是Yellowdog Updater, Modified的缩写,是一个用于自动解决依赖关系并进行软件包安装、更新和卸载的命令行工具。
  • update: 这个子命令用于将系统中的所有已安装软件包升级到最新可用版本。它会检查系统当前的软件仓库,并与其中的软件包版本信息进行对比,然后下载并安装任何可用的新版本或安全更新。
  • -y: 这是一个选项,表示“yes”之意,即当需要确认是否接受软件包下载和安装时,自动回答为“是”。这样可以实现命令执行过程中无需人工干预,方便自动化脚本执行或批量操作。

所以,当你运行 yum update -y 时,就是在系统上执行一个自动更新所有软件包的操作,包括内核、应用程序和其他系统组件。

安装docker、docker compose

执行yum命令即可自动安装docker,-y解决在安装过程中,提示输入yes继续安装参数。

yum install docker-ce docker-ce-cli containerd.io

安装Docker CE以及其相关依赖组件的指令。

  • docker-ce: 是Docker社区版,包含了Docker引擎的核心功能,是运行Docker容器的主要组件。
  • docker-ce-cli: 提供了与Docker守护进程进行交互的客户端工具,包括 docker 命令行接口。
  • containerd.io: 它是一个开源容器运行时,为Docker提供底层容器运行时支持。从Docker 18.09版本开始,Docker开始依赖于containerd作为默认的容器运行时环境。

这个命令的作用是通过Yum包管理器下载并安装上述三个软件包及其所有依赖项,以在系统中启用完整的Docker环境。

启动docker服务

第一次安装完需要手动启动docker服务。

systemctl start docker

验证docker、docker compose 命令是否安装成功

当我们启动完docker服务后,需要确认docker、docker compose命令是否可用。

docker --version
docker compose version

配置国内镜像加速源(自选配置)

由于很多docker镜像源都在国外,国内访问速度相对比较慢,并且极易断开。我们配置国内代理后会加速下载。我们需要修改或新建配置文件/etc/docker/daemon.json。

微信图片20240223160545.png

这个命令使用了tee命令以及Here Document(即“<<-'EOF'"结构)来创建或更新 /etc/docker/daemon.json 文件,以便配置Docker守护进程的镜像仓库镜像地址。

命令解析:

  1. tee /etc/docker/daemon.json: 使用tee命令将标准输入的内容写入到指定的文件路径/etc/docker/daemon.json。这意味着任何通过管道传给tee的文本内容都会被保存在这个文件中,并同时显示在终端上(如果未加 -a 追加选项,则会覆盖文件原有内容)。
  2. <<-'EOF': 是Here Document的一种形式,也被称为多行字符串或多行输入重定向。它告诉shell从这里开始读取直到遇到第一个单独出现的EOF为止的所有内容,并将其作为命令的标准输入传递给tee命令。这里的单引号和减号(-)表示保留所有内容原样输出,包括开头的制表符和空格。
  3. {...}: 这部分是JSON格式的数据,用于配置Docker守护进程。具体来说,它设置了Docker的registry-mirrors参数,其中包含了多个镜像仓库的URL列表。当Docker客户端尝试从官方Docker Hub拉取镜像时,会优先尝试这些镜像仓库以提高下载速度或解决网络问题。

执行重启命令

systemctl daemon-reload
systemctl restart docker

确认配置的镜像地址是否生效

我们配置完docker国内镜像后,需要确认一下是否配置成功。使用docker自身提供的命令查看相关信息。

docker info

测试一下下载镜像的时间
使用time命令可以统计下载时间,我们执行看一下效果。

time docker pull node:latest

设置开机启动(自选配置)

当系统重启时,可以使用systemctl命令配置docker也能跟随系统一起重启。

systemctl enable docker

下载并使用solo-in-docker个人博客系统

在基于CentOS的Linux系统上,从Gitee获取solo-in-docker项目并将其部署到Docker容器中的步骤如下:

安装Git

确保你的系统已经安装了Git。如果没有,请使用以下命令安装:

yum install git -y

配置Git和Gitee SSH密钥(可选配置,推荐)

如果你希望使用SSH方式克隆仓库以避免频繁输入密码,需要生成SSH密钥对并在Gitee上添加公钥。请参考Gitee官方文档设置SSH密钥。

克隆solo-in-docker项目

假设你已获取到该项目的SSH或HTTPS克隆地址,例如:git@gitee.com:user/solo-in-docker.githttps://gitee.com/user/solo-in-docker.git

通过SSH方式克隆:

cd /path/to/your/workdir
git clone git@gitee.com:user/solo-in-docker.git

或者通过HTTPS方式克隆:

cd /path/to/your/workdir
git clone https://gitee.com/user/solo-in-docker.git

如何使用

确保系统环境具有docker + docker-compose
检查命令

docker -v
docker-compose -v

配置docker-compose.yml文件,需要注意的事项已经全部//备注好了

微信图片20240223160725.png

启动命令

docker-compose up -d

停止命令

docker-compose down

查看solo日志的命令

docker logs -t -f --tail 100 solo

这个命令是用来查看Docker容器内名为 solo 的容器的日志,具体解释如下:

docker logs: 是 Docker 提供的用于查看容器内部日志的标准命令。

-t: 参数表示在输出日志时添加时间戳,这样可以知道每个日志条目的生成时间。

-f--follow: 表示跟随(follow)模式,即实时输出容器新增的日志信息。只要容器仍在运行并且产生新的日志,这个命令就会持续显示最新的日志内容。

--tal 100: 表示只显示最近的100行日志。如果没有这个选项,docker logs 将默认输出所有日志。

solo: 这是目标容器的名字。当你想要查看某个特定容器的日志时,需要提供容器的名称或ID。

注意事项

  • docker-compose 只是一个 docker 容器的编排工具,本质还是 docker 容器在运行
  • 每一次命令 docker-compose 启动的时候,都会自动拉取最新 solo 的镜像,所以自动更新非常简单
  • 数据备份问题,docker 容器死亡的时候,容器内数据会自动清除,除非我们使用 volumes 构建映射关系,这里我只将最重要的 mysql 数据库文件映射在 mysql/data 目录下

标题:docker-compose部署solo-in-docker个人博客系统
作者:haor111
地址:http://haosal001.asia/articles/2024/02/22/1708600720361.html