温馨提示×

centos与docker的集成方式是什么

小樊
35
2026-01-02 01:32:28
栏目: 智能运维

总体说明CentOS 上,所谓“集成”通常指将 Docker 引擎作为系统服务运行,并通过 systemd 管理;按需配置 网络、存储、防火墙、用户权限、镜像加速与代理,再结合 Docker Compose 编排多容器应用。核心组件包括:docker-ce、docker-ce-cli、containerd.io,默认通过 Unix 套接字 /var/run/docker.sock 与 Docker 守护进程通信。

安装与系统服务集成

  • 准备与卸载旧版
    • 确认系统为 CentOS 7/8/Stream,执行:sudo yum update -y
    • 卸载旧版:sudo yum remove -y docker* docker-ce* containerd.io
  • 安装依赖与仓库
    • 安装工具:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    • 添加仓库(官方):sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • 国内可选(更快):sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装与启动
    • 安装引擎:sudo yum install -y docker-ce docker-ce-cli containerd.io
    • 启动并自启:sudo systemctl enable --now docker
    • 验证:sudo docker run --rm hello-world
  • 可选:免 sudo 使用
    • 将用户加入 docker 组:sudo usermod -aG docker $USER,随后重新登录会话生效。

运行与网络集成

  • 端口映射与访问
    • 运行并映射端口:sudo docker run -d -p 8080:80 nginx:alpine,主机 8080 映射到容器 80
  • 自定义网络与容器互联
    • 创建网络:docker network create mynet
    • 连接网络:docker run -d --network=mynet --name=web nginx:alpine
  • 防火墙与 Docker 网络
    • 推荐将 docker0 接口加入 trusted 区域:sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 && sudo firewall-cmd --reload
    • 开放业务端口(示例):sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reload
  • 存储与数据持久化
    • 数据卷(推荐):docker volume create myvol;挂载:docker run -d -v myvol:/data nginx:alpine
    • 绑定挂载:docker run -d -v /host/data:/container/data nginx:alpine
  • 日志与资源查看
    • 查看日志:docker logs <容器名或ID>
    • 资源监控:docker stats

安全与运维配置

  • 守护进程配置
    • 编辑 /etc/docker/daemon.json(不存在则创建),常用项:
      • 存储驱动:"storage-driver": "overlay2"
      • 日志:"log-driver": "json-file", "log-opts": {"max-size":"100m"}
      • 镜像加速:"registry-mirrors": ["https://<YOUR_MIRROR_URL>"]
    • 使配置生效:sudo systemctl daemon-reload && sudo systemctl restart docker
  • 远程访问与监听
    • 如需远程 API,可在 daemon.json 设置 "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] 并配合防火墙与 TLS 谨慎暴露;生产环境不建议直接开放 2375/2376
  • 代理配置
    • 守护进程代理:在 /etc/systemd/system/docker.service.d/http-proxy.conf 中设置
      • [Service] Environment="HTTP_PROXY=http://proxy:8080" "HTTPS_PROXY=http://proxy:8080" "NO_PROXY=localhost,127.0.0.1"
      • 执行:sudo systemctl daemon-reload && sudo systemctl restart docker
  • 用户命名空间隔离(可选)
    • daemon.json 启用:"userns-remap": "default",降低容器以 root 权限对宿主机的影响。

编排与多容器应用

  • 安装 Docker Compose
    • 二进制安装(示例):sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
    • 验证:docker-compose --version
  • 快速编排示例(docker-compose.yml)
    • 启动:docker-compose up -d
    • 常用:docker-compose psdocker-compose logs -fdocker-compose down
  • 企业级镜像与代理
    • 结合 Harbor 搭建私有仓库,统一镜像管理与访问控制;在受限网络环境配置 镜像加速与代理 提升拉取效率与可达性。

0