Fix and update

This commit is contained in:
baohua
2026-02-09 11:34:35 -08:00
parent 784c989789
commit bb94a9f617
136 changed files with 2146 additions and 262 deletions

View File

@@ -34,6 +34,8 @@ $ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
### 测试安装
运行以下命令
```bash
$ docker compose version
Docker Compose version v2.40.3
@@ -41,6 +43,8 @@ Docker Compose version v2.40.3
### bash 补全命令
运行以下命令
```bash
$ curl -L https://raw.githubusercontent.com/docker/compose/v2.40.3/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
```
@@ -51,4 +55,4 @@ $ curl -L https://raw.githubusercontent.com/docker/compose/v2.40.3/contrib/compl
```bash
$ rm $DOCKER_CONFIG/cli-plugins/docker-compose
```
```

View File

@@ -1,5 +1,7 @@
## 使用
本节将通过一个具体的 Web 应用案例介绍 Docker Compose 的基本概念和使用方法
### 术语
首先介绍几个术语
@@ -67,6 +69,8 @@ services:
#### 运行 compose 项目
运行以下命令
```bash
$ docker compose up
```
@@ -78,18 +82,24 @@ $ docker compose up
#### 后台运行
运行以下命令
```bash
$ docker compose up -d
```
#### 停止
运行以下命令
```bash
$ docker compose stop
```
#### 进入服务
运行以下命令
```bash
$ docker compose exec redis sh
/data # redis-cli
@@ -99,36 +109,48 @@ $ docker compose exec redis sh
#### 查看日志
运行以下命令
```bash
$ docker compose logs -f
```
#### 构建镜像
运行以下命令
```bash
$ docker compose build
```
#### 启动服务
运行以下命令
```bash
$ docker compose start
```
#### 运行一次性命令
运行以下命令
```bash
$ docker compose run web python app.py
```
#### 验证 `docker-compose.yml`
运行以下命令
```bash
$ docker compose config
```
#### 删除项目
运行以下命令
```bash
$ docker compose down
```

View File

@@ -1,5 +1,7 @@
## Compose 命令说明
Docker Compose 提供了丰富的命令来管理项目和容器本节将详细介绍这些命令的使用格式和常用选项
### 命令对象与格式
对于 Compose 来说大部分命令的对象既可以是项目本身也可以指定为项目中的服务或者容器如果没有特别的说明命令对象将是项目这意味着项目中所有的服务都会受到命令影响
@@ -147,6 +149,7 @@ $ docker compose kill -s SIGINT
* `-v` 删除容器所挂载的数据卷
#### `run`
格式为 `docker compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`
在指定服务上执行一个命令

View File

@@ -204,6 +204,7 @@ env_file:
```bash
## common.env: Set development environment
PROG_ENV=development
```
@@ -568,6 +569,7 @@ db:
```bash
## 支持 # 号注释
MONGO_VERSION=3.6
```

View File

@@ -46,22 +46,29 @@ $ mkdir django-docker && cd django-docker
### Step 1: 创建 Dockerfile
具体内容如下
```docker
FROM python:3.12-slim
## 防止 Python 缓冲 stdout/stderr让日志实时输出
ENV PYTHONUNBUFFERED=1
## 设置工作目录
WORKDIR /code
## 先复制依赖文件,利用 Docker 缓存加速构建
COPY requirements.txt /code/
## 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
## 复制项目代码
COPY . /code/
```
@@ -79,6 +86,8 @@ COPY . /code/
### Step 2: 创建 requirements.txt
具体内容如下
```txt
Django>=5.0,<6.0
psycopg[binary]>=3.1,<4.0
@@ -95,6 +104,8 @@ gunicorn>=21.0,<22.0
### Step 3: 创建 docker-compose.yml
Step 3: 创建 docker-compose.yml 配置如下
```yaml
services:
db:
@@ -132,6 +143,8 @@ volumes:
#### db 服务
db 服务 配置如下
```yaml
db:
image: postgres:16 # 使用官方 PostgreSQL 16 镜像
@@ -150,6 +163,8 @@ db:
#### web 服务
web 服务 配置如下
```yaml
web:
build: . # 从当前目录的 Dockerfile 构建
@@ -222,6 +237,7 @@ DATABASES = {
}
## 允许的主机(开发环境)
ALLOWED_HOSTS = ['*']
```
@@ -231,6 +247,8 @@ ALLOWED_HOSTS = ['*']
### Step 6: 启动应用
运行以下命令
```bash
$ docker compose up
```
@@ -255,15 +273,19 @@ web-1 | Starting development server at http://0.0.0.0:8000/
```bash
## 执行数据库迁移
$ docker compose exec web python manage.py migrate
## 创建超级用户
$ docker compose exec web python manage.py createsuperuser
## 进入 Django shell
$ docker compose exec web python manage.py shell
## 进入 PostgreSQL 命令行
$ docker compose exec db psql -U django_user -d django_db
```
@@ -285,6 +307,7 @@ $ docker compose exec db psql -U django_user -d django_db
```bash
## 调试:检查数据库是否正常运行
$ docker compose ps
$ docker compose logs db
```
@@ -299,8 +322,11 @@ $ docker compose logs db
#### Q3: 权限问题Linux
运行以下命令
```bash
## 如果容器内创建的文件 root 用户所有
$ sudo chown -R $USER:$USER .
```
@@ -320,6 +346,7 @@ $ sudo chown -R $USER:$USER .
```yaml
## docker-compose.prod.yml
services:
web:
build: .

View File

@@ -6,6 +6,8 @@
### 架构概览
具体内容如下
```
┌─────────────────────────────────────────────────────────────┐
│ Docker Compose 网络 │
@@ -37,23 +39,29 @@ $ mkdir rails-docker && cd rails-docker
### Step 1: 创建 Dockerfile
具体内容如下
```docker
FROM ruby:3.2
## 安装系统依赖
RUN apt-get update -qq && \
apt-get install -y build-essential libpq-dev nodejs && \
rm -rf /var/lib/apt/lists/*
## 设置工作目录
WORKDIR /myapp
## 先复制 Gemfile利用缓存加速构建
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
## 复制应用代码
COPY . /myapp
```
@@ -83,6 +91,8 @@ $ touch Gemfile.lock
### Step 3: 创建 docker-compose.yml
Step 3: 创建 docker-compose.yml 配置如下
```yaml
services:
db:
@@ -176,6 +186,8 @@ production:
### Step 7: 启动应用
运行以下命令
```bash
$ docker compose up
```
@@ -206,20 +218,27 @@ Created database 'myapp_test'
### 常用开发命令
运行以下命令
```bash
## 数据库迁移
$ docker compose exec web rails db:migrate
## Rails 控制台
$ docker compose exec web rails console
## 运行测试
$ docker compose exec web rails test
## 生成脚手架
$ docker compose exec web rails generate scaffold Post title:string body:text
## 进入容器 Shell
$ docker compose exec web bash
```

View File

@@ -1,13 +1,13 @@
## 实战 WordPress
### 简介
WordPress 是全球最流行的内容管理系统CMS使用 Docker Compose 可以在几分钟内搭建一个包含数据库Web 服务和持久化存储的生产级 WordPress 环境
---
### 项目结构
具体内容如下
```
wordpress/
├── docker-compose.yml
@@ -77,7 +77,7 @@ networks:
### 配置文件详解
#### 1. 环境变量 (.env)
#### 1. 环境变量.env
为了安全不要在 `docker-compose.yml` 中直接写密码创建 `.env` 文件
@@ -135,6 +135,7 @@ $ docker compose logs -f
```bash
## 导出 SQL
$ docker exec wordpress_db mysqldump -u wordpress -pwordpress wordpress > backup.sql
```