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
- 卸载旧版本(如有)
bash
sudo yum remove -y docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 安装依赖工具
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加阿里云 Docker CE 仓库(国内源)
bash
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker
bash
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 启动 Docker 并设置开机自启
bash
sudo systemctl start docker
sudo systemctl enable docker
- 验证安装
bash
docker --version
sudo docker run hello-world
三、配置 Docker 国内镜像加速器
- 创建配置目录并写入镜像源
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