centos安装docker配置自动HTTPS部署多个项目

centos安装docker

CentOS 安装 Docker 并配置国内镜像源

一、配置 CentOS 国内 YUM 源(前置步骤)

1. 备份原有 YUM 源配置

bash 复制代码
sudo mv /etc/yum.repos.d /etc/yum.repos.d.bak
sudo mkdir /etc/yum.repos.d

2. 下载阿里云 CentOS 7 基础源

bash 复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3. 重建 YUM 缓存

bash 复制代码
sudo yum clean all
sudo yum makecache

二、安装 Docker

  1. 卸载旧版本(如有)
bash 复制代码
sudo yum remove -y docker docker-client docker-client-latest docker-common \
    docker-latest docker-latest-logrotate docker-logrotate docker-engine
  1. 安装依赖工具
bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加阿里云 Docker CE 仓库(国内源)
bash 复制代码
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装 Docker
bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 并设置开机自启
bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker
  1. 验证安装
bash 复制代码
docker --version
sudo docker run hello-world

三、配置 Docker 国内镜像加速器

  1. 创建配置目录并写入镜像源
bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

docker-compose.yml

bash 复制代码
version: '3.8'

services:
  www-web-cn:
    build: ./www.web.cn
    container_name: www-web-cn
    command:  ["sh", "-c", "python app.py collectstatic --noinput && exec gunicorn mysite.wsgi:application --bind 0.0.0.0:8000"]
    volumes:
      - ./www.web.cn:/app
    expose:
      - "8000"  # 只暴露给 linked 容器,不暴露给
    environment:
      - DEBUG=0           # 生产关闭调试
      - SECRET_KEY=your-super-secret-key-123456
      - ALLOWED_HOSTS=*
    restart: always
    networks:
      - app_network
# ========== SWAG (Nginx + Certbot) ==========
  swag:
    image: lscr.io/linuxserver/swag:latest
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      # 第一个域名(主域名)
      - URL=web.cn
      - VALIDATION=http
      - EMAIL=your@email.com
      # 第二个域名(额外域名)
      - EXTRA_DOMAINS=www.web.cn
      - ONLY_SUBDOMAINS=false
      - STAGING=false
    volumes:
      - ./nginx:/config
      - ./www.web.cn:/www.web.cn
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - www-web-cn
    networks:
      - app_network
    restart: unless-stopped
volumes:
  media_volume:
  static_volume:
  static_volume3:
networks:
  app_network:
    driver: bridge

Dockerfile

bash 复制代码
FROM python:3.11-slim
# 工作目录
WORKDIR /app
# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt

./nginx/nginx/site-confs/www.web.cn.conf

bash 复制代码
# 文件名: ./nginx/site-confs/xxx.conf 每个web一个
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name www.web.cn;
    # 包含 SWAG 已经为你配置好的通用 SSL 参数
    include /config/nginx/ssl.conf;
    # 静态文件(可选)
    location /static/ {
        alias /www.web.cn/static/;
    }
    # 动态请求全部转发给 www-web-cn 容器
    location / {
        proxy_pass http://www-web-cn:8000;
        include /config/nginx/proxy.conf;
    }
}
Docker-compose命令
bash 复制代码
docker-compose up -d
docker-compose down
相关推荐
是枚小菜鸡儿吖2 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉4 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg15 小时前
【Docker】镜像相关指令
运维·docker·容器
java_logo6 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频6 小时前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui
分布式存储与RustFS6 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
NiceZack7 小时前
Hadoop 部署全流程教程:从新装 CentOS 到伪分布式与完全分布式
hadoop·分布式·centos
n112127 小时前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
慈云数据8 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
螺蛳粉 螺蛳粉8 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver