从 docker-compose 快速入门 Docker

从 docker-compose 快速入门 Docker
最新回答
青春喂了作业

2026-10-22 11:12:11

通过 docker-compose 快速入门 Docker 的核心步骤是安装 Docker 和 docker-compose,使用 docker-compose.yml 定义服务,并通过简单命令管理容器生命周期,以下结合 Ghost 博客部署实例详细说明:

一、安装 Docker 和 docker-compose
  1. 安装 Docker使用官方脚本快速安装 Docker,执行以下命令:

    $ curl -fsSL get.docker.com -o get-docker.sh$ sh get-docker.sh$ sudo systemctl start docker

    安装完成后,运行测试命令验证安装:

    $ sudo docker run hello-world

    若看到 Hello from Docker! 的输出,说明安装成功。

  2. 安装 docker-compose通过 pip3 安装 docker-compose(需提前安装 Python3 和 pip):

    $ pip3 install docker-compose
二、Ghost 博客部署实例

Ghost 是一个基于 NodeJS 的轻量级博客框架,传统部署需手动安装 Node 和配置环境变量,而 Docker 可简化流程。以下通过两种方法演示部署:

方法一:直接运行容器(简单但可配置性低)
  1. 运行容器执行以下命令启动 Ghost 容器:

    $ docker run -d --name some-ghost -p 80:2368 -v /path/to/ghost/blog:/var/lib/ghost/content ghost:latest

    -d:后台运行容器。

    --name some-ghost:指定容器名称。

    -p 80:2368:将容器内 2368 端口映射到宿主机 80 端口。

    -v /path/to/ghost/blog:/var/lib/ghost/content:挂载本地目录到容器内,实现数据持久化。

  2. 访问博客直接通过宿主机 IP 访问 Ghost 博客(如

    http://<
    宿主机IP>)。缺点:重启或重新配置容器需重新输入长命令,且可配置性低(如 SSL 需依赖 CDN)。

方法二:使用 docker-compose(推荐,可配置性高)
  1. 创建项目目录新建文件夹(如 lc-docker),并在其中创建 docker-compose.yml 文件,内容如下:

    version: '3'services: ghost: image: ghost:latest ports: - 9030:2368 volumes: - ./data:/var/lib/ghost/content environment: - url=
    http://articles.leetcode-cn.com
    restart: always

    image: ghost:latest:使用最新版 Ghost 镜像。

    ports: - 9030:2368:将容器内 2368 端口映射到宿主机 9030 端口。

    volumes: - ./data:/var/lib/ghost/content:挂载本地 data 目录到容器内。

    environment: - url=...:设置博客对外访问的 URL(避免后台链接错误)。

    restart: always:容器退出时自动重启。

  2. 创建数据目录在项目目录下创建 data 文件夹,用于存储 Ghost 数据:

    $ mkdir data
  3. 启动容器在项目目录下执行以下命令:

    $ docker-compose up -d # 构建并启动容器

    -d:后台运行。其他命令:

    $ docker-compose stop # 停止容器(不删除)$ docker-compose rm # 删除容器
  4. 配置 Nginx 反向代理编辑 Nginx 配置文件(如 /etc/nginx/conf.d/ghost.conf),添加以下内容:

    server { listen 80; server_name articles.leetcode-cn.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass
    http://127.0.0.1:9030;
    proxy_redirect off; }}

    重启 Nginx 使配置生效:

    $ sudo systemctl restart nginx
  5. 配置 SSL(可选)使用 certbot 自动申请并配置 SSL 证书:

    $ certbot --nginx -d articles.leetcode-cn.com

    按提示完成操作后,Nginx 将自动启用 HTTPS。

三、关键概念解析
  1. 容器与镜像

    镜像:类似类,定义了应用的运行环境(如 Ghost 镜像包含 NodeJS 和博客代码)。

    容器:类似对象,基于镜像创建并运行实例(如通过 ghost:latest 镜像启动的容器)。

  2. 端口映射通过 -p 宿主机端口:容器端口 将容器内服务暴露到宿主机,实现外部访问。

  3. 数据挂载通过 -v 本地路径:容器路径 将本地目录挂载到容器内,实现数据持久化(避免容器删除后数据丢失)。

  4. docker-compose.yml 结构

    version:定义 Compose 文件版本。

    services:定义服务列表(如 Ghost 博客、数据库等)。

    environment:设置环境变量(如博客 URL)。

    restart:定义容器退出时的重启策略。

四、总结
  • 简单场景:直接运行容器(方法一),适合快速测试或临时使用。
  • 生产环境:使用 docker-compose(方法二),通过配置文件管理容器,支持端口映射、数据挂载、环境变量等高级功能,且易于维护和扩展。
  • 扩展性:可在 docker-compose.yml 中添加更多服务(如 MySQL、Redis),实现多容器协同工作。

通过以上步骤,可快速掌握 Docker 和 docker-compose 的核心用法,并完成 Ghost 博客的部署。