一、Docker 安装与配置

1. 卸载旧版本(如有)

bash

sudo apt remove docker docker-engine docker.io containerd runc  

2. 安装依赖工具

bash

sudo apt update  
sudo apt install -y ca-certificates curl gnupg  

3. 添加 Docker 官方 GPG 密钥

bash

sudo install -m 0755 -d /etc/apt/keyrings  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg  
sudo chmod a+r /etc/apt/keyrings/docker.gpg  

4. 添加 Docker 源

bash

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  

5. 安装 Docker 引擎

bash

sudo apt update  
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  

6. 验证安装

bash

sudo docker run hello-world  

✅ 出现 Hello from Docker! 表示成功


二、Docker 基本配置

1. 允许非 root 用户操作 Docker

bash

sudo usermod -aG docker $USER  
newgrp docker  # 立即生效(或重新登录)  

2. 配置国内镜像加速(阿里云)

bash

sudo mkdir -p /etc/docker  
sudo tee /etc/docker/daemon.json <<-'EOF'  
{  
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]  
}  
EOF  

ℹ️ 替换 xxxxxx 为阿里云容器镜像服务提供的专属加速地址

3. 重启 Docker 服务

bash

sudo systemctl daemon-reload  
sudo systemctl restart docker  

三、Docker Compose 安装与使用

1. 安装 Docker Compose(如未自动安装)

bash

sudo apt install docker-compose-plugin  

2. 验证安装

bash

docker compose version  

✅ 输出类似:Docker Compose version v2.25.0

3. 创建示例项目(Nginx + MySQL)

bash

mkdir ~/myapp && cd ~/myapp  
nano docker-compose.yml  

docker-compose.yml 内容

yaml

version: '3.8'  
services:  
  web:  
    image: nginx:alpine  
    ports:  
      - "80:80"  
    volumes:  
      - ./html:/usr/share/nginx/html  
    depends_on:  
      - db  

  db:  
    image: mysql:8.0  
    environment:  
      MYSQL_ROOT_PASSWORD: secure_password  
      MYSQL_DATABASE: app_db  
    volumes:  
      - mysql_data:/var/lib/mysql  

volumes:  
  mysql_data:  

4. 启动服务栈

bash

docker compose up -d  

✅ 访问 http://服务器IP 查看 Nginx 欢迎页


四、Docker 常用命令速查表

🐳 镜像管理

命令

说明

docker images

查看本地镜像

docker pull nginx:alpine

拉取镜像

docker rmi <镜像ID>

删除镜像

docker build -t myapp:v1 .

构建镜像

📦 容器管理

命令

说明

docker ps -a

查看所有容器

docker run -d -p 80:80 --name webserver nginx

启动容器

docker exec -it webserver sh

进入容器

docker stop webserver

停止容器

docker rm webserver

删除容器

docker logs webserver

查看容器日志

🔄 生命周期管理

命令

说明

docker start webserver

启动已停止的容器

docker restart webserver

重启容器

docker pause webserver

暂停容器

docker unpause webserver

恢复容器


五、Docker Compose 常用命令速查表

命令

说明

docker compose up -d

启动所有服务(后台模式)

docker compose down

停止并删除所有容器

docker compose ps

查看服务状态

docker compose logs

查看服务日志

docker compose build

重新构建镜像

docker compose exec web sh

进入 web 服务容器

docker compose pull

拉取服务镜像

docker compose config

验证 Compose 文件


六、关键目录说明

text

/var/lib/docker          # Docker 主目录  
  ├── containers/        # 容器数据  
  ├── images/            # 镜像存储  
  ├── volumes/           # 卷数据  
  └── networks/          # 网络配置  

/etc/docker              # 配置文件目录  
  ├── daemon.json        # Docker 守护进程配置  
  └── key.json           # 认证密钥  

/var/run/docker.sock     # Docker API 通信 Socket  

七、安全建议

  1. 避免使用 root 权限

    bash

    docker run --user 1000:1000 myapp  
  2. 限制容器资源

    yaml

    # docker-compose.yml 示例  
    services:  
      web:  
        cpus: "1.0"  
        mem_limit: 512m  
        memswap_limit: 1g  
  3. 定期更新镜像

    bash

    docker compose pull && docker compose up -d --force-recreate  
  4. 启用内容信任

    bash

    export DOCKER_CONTENT_TRUST=1  

💡 提示:生产环境建议使用 docker scan 扫描镜像漏洞


通过本教程,您已掌握 Docker 核心操作和 Compose 编排技巧。建议结合 Docker 官方文档 深入学习高级功能!