温馨提示×

centos里docker容器如何管理

小樊
42
2025-09-17 16:51:05
栏目: 智能运维

CentOS环境下Docker容器管理指南

1. 前置准备:安装Docker

在CentOS上管理Docker容器前,需先安装Docker Engine。以下是基础安装步骤:

  • 卸载旧版本(可选):sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
  • 安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加Docker官方镜像源sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装Docker CEsudo yum install -y docker-ce docker-ce-cli containerd.io
  • 启动服务并设置开机自启sudo systemctl start docker && sudo systemctl enable docker
  • 验证安装sudo docker run hello-world(运行测试容器,确认Docker正常工作)。

2. 基础容器操作

2.1 查看容器
  • 查看运行中的容器docker ps(显示容器ID、名称、状态、端口映射等信息);
  • 查看所有容器(含已停止)docker ps -a(添加-a参数显示所有容器)。
2.2 启动/停止容器
  • 启动容器
    • 新建并启动:docker run -d --name <容器名> -p <主机端口>:<容器端口> -v <主机路径>:<容器路径> <镜像名>-d后台运行,-p端口映射,-v数据卷挂载);
    • 启动已停止的容器:docker start <容器名或ID>
  • 停止容器
    • 正常停止(优雅退出):docker stop <容器名或ID>(发送SIGTERM信号,等待容器自行关闭,默认超时10秒);
    • 强制停止:docker kill <容器名或ID>(发送SIGKILL信号,立即终止容器,可能导致数据丢失);
    • 批量停止所有运行中的容器:docker stop $(docker ps -q)-q仅显示容器ID)。
2.3 删除容器
  • 删除已停止的容器docker rm <容器名或ID>(仅能删除停止状态的容器);
  • 强制删除运行中的容器docker rm -f <容器名或ID>(强制终止并删除,慎用);
  • 批量删除所有停止的容器docker container prune(交互式确认删除)或docker rm $(docker ps -aq)(直接删除所有停止容器)。

3. 高级容器管理

3.1 进入容器内部
  • 交互式进入docker exec -it <容器名或ID> /bin/bash-it分配伪终端,/bin/bash启动bash shell,适用于调试);
  • 执行单条命令docker exec <容器名或ID> <命令>(如docker exec my_nginx ls /usr/share/nginx/html查看Nginx默认页面目录)。
3.2 文件拷贝
  • 主机→容器docker cp <主机路径> <容器名或ID>:<容器路径>(如docker cp ./app.py my_container:/app);
  • 容器→主机docker cp <容器名或ID>:<容器路径> <主机路径>(如docker cp my_container:/app/logs.txt ./)。
3.3 容器日志与监控
  • 查看容器日志docker logs <容器名或ID>(实时查看日志,-f跟随输出;--tail 100显示最后100行);
  • 监控容器资源docker stats(实时显示容器CPU、内存、网络IO等使用情况,--format自定义输出格式)。
3.4 容器配置修改
  • 设置自动重启docker update --restart always <容器名或ID>(容器退出后自动重启,可选on-failure(失败时重启)、unless-stopped(除非手动停止));
  • 修改端口映射:需重建容器,先docker stopdocker rm原容器,再用docker run重新创建时指定新的-p参数。

4. 多容器管理(Docker Compose)

对于复杂应用(如Web+数据库),可使用docker-compose管理多容器:

  • 安装docker-composesudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
  • 创建docker-compose.yml(示例):
    version: '3'
    services:
      web:
        image: nginx:latest
        ports:
          - "8080:80"
        volumes:
          - ./html:/usr/share/nginx/html
      db:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: 123456
        volumes:
          - db_data:/var/lib/mysql
    volumes:
      db_data:
    
  • 启动服务docker-compose up -d(后台启动所有服务);
  • 停止服务docker-compose down(停止并删除所有容器、网络、卷);
  • 查看服务状态docker-compose ps

5. 安全与优化建议

  • 镜像加速:编辑/etc/docker/daemon.json,添加{"registry-mirrors": ["https://mirror.aliyuncs.com"]},重启Docker使配置生效(加快镜像下载速度);
  • 数据持久化:使用-v参数挂载主机目录或Docker卷(如-v my_volume:/app/data),避免容器删除后数据丢失;
  • 资源限制:通过--cpus="1.5"(限制1.5核CPU)、--memory="512m"(限制512MB内存)参数限制容器资源,防止资源耗尽。

0