docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker Compose 私有仓库

Docker Compose 与 Harbor 私有仓库详解

作者:FENG

本文将探讨Docker Compose多容器编排工具与Harbor企业级私有仓库的核心技术,帮助读者掌握从容器管理到镜像安全存储的完整解决方案,感兴趣的朋友一起看看吧

简介

在当今云计算与容器化技术飞速发展的时代,Docker 作为容器化领域的领军技术,已成为开发与运维团队不可或缺的工具。本文将探讨 Docker Compose 多容器编排工具与 Harbor 企业级私有仓库的核心技术,帮助读者掌握从容器管理到镜像安全存储的完整解决方案。

一、Docker 容器重启策略与状态码解析

(一)Docker 容器重启策略详解

Docker 容器的重启策略是面向生产环境的重要机制,由 Docker 守护进程控制,在开发过程中可忽略,但在生产部署中至关重要。常见的重启策略包括:

示例命令

# 启动一个始终重启的容器
docker run -itd --restart=always --name host1 busybox sh

该命令通过 ​​--restart=always​​ 参数指定容器退出时始终重启,确保 host1 容器保持运行状态。

(二)Docker 容器常见退出状态码

通过容器退出状态码可快速判断容器运行情况:

状态码

说明

0

容器正常退出,表明容器内的进程成功执行完毕。

125

Docker 守护进程本身出现错误,需检查 Docker 服务状态。

126

容器启动后要执行的默认命令无法调用,可能是命令权限问题或路径错误。

127

容器启动后要执行的默认命令不存在,需确认命令名称是否正确。

其他

容器内正常执行的命令返回的状态码,需根据具体命令逻辑分析。

二、Docker Compose 工具深度应用

(一)Docker Compose 简介与安装

Docker Compose 的前身是 Fig,是定义和运行多个 Docker 容器的强大工具。通过一个配置文件即可定义多个容器,并使用一条命令启动,极大简化了多容器应用的部署。

安装步骤

  1. 使用 curl 下载对应版本的 Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

该命令从 GitHub 下载指定版本的 Docker Compose 二进制文件并保存到 ​​/usr/local/bin​​ 目录。

  1. 添加执行权限并创建软链接:
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

​chmod +x​​​ 赋予文件执行权限,​​ln -s​​​ 创建软链接以便在任何目录都能执行 ​​docker-compose​​ 命令。

  1. 验证安装:
docker-compose --version

输出版本信息则表示安装成功。

(二)YAML 文件格式与编写规范

Docker Compose 使用 YAML 格式的配置文件,YAML 是一种可读性高的标记语言,语法比 XML 简单。编写时需注意:

(三)Docker Compose 基本操作命令

1. 容器运行

2. 容器控制

3. 容器删除

​docker-compose down​​ 命令用于停止并删除容器、网络等资源,是清理环境的常用命令。

(四)Docker Compose 案例演示

以部署 Nginx 服务为例,演示 Compose 的实际应用:

1. 编写 docker-compose.yaml 文件

version: '2'
services:
  webapp:
    image: 'nginx'
    ports:
      - "80:80"
    volumes:
      - "/www/html:/www/html:rw"
      - "/opt/nginx/nginx.conf:/etc/nginx/nginx.conf"

2. 配置 Nginx

创建 nginx 配置文件并上传到 Docker 主机:

mkdir /opt/nginx
vim /opt/nginx/nginx.conf

在配置文件中设置工作进程数、事件连接数、HTTP 服务等参数,如:

worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 80;
        server_name localhost;
        location / {
            root /www/html;
            index index.html index.htm index.php;
        }
        # 其他配置...
    }
}

该配置定义了一个基本的 Nginx 服务,监听 80 端口,根目录为 ​​/www/html​​-。

3. 执行部署

docker-compose up -d

该命令在后台启动 Nginx 容器,根据配置文件完成服务部署。

4. 查看容器状态

docker-compose ps

命令列出当前运行的容器及其状态,确认 Nginx 服务是否正常启动。

三、Harbor 企业级私有仓库搭建与管理

(一)Harbor 基础概念

1. Harbor 简介

Harbor 是 VMware 开源的企业级 Docker Registry 项目,基于 Docker 开源的 Registry 构建,添加了管理 UI、基于角色的访问控制、LDAP/AD 集成、审计日志等企业级功能。作为私有仓库,Harbor 提供了更好的性能和安全性,提升了镜像传输和管理效率。

2. Harbor 的核心优势

3. Harbor 架构组成

Harbor 主要由以下组件构成:

(二)Harbor 部署实战

1. 环境准备

操作系统

主机名

配置

IP

CentOS 7.9 2009

harbor

2C4G

192.168.10.106

CentOS 7.9 2009

client

2C4G

192.168.10.101

2. 基础环境设置(两台主机均需操作)

systemctl stop firewalld
systemctl disable firewalld

停止并禁用防火墙,确保网络通信正常。

setenforce 0
sed -i "s/.*SELINUX=.*$/SELINUX=disabled/g" /etc/selinux/config

临时和永久关闭 selinux,避免其对 Docker 操作产生干扰。

3. 下载与安装

wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz

tar -zxvf harbor-offline-installer-v2.4.3.tgz

解压后得到 harbor 目录,包含安装脚本和配置文件模板-。

4. 配置 Harbor

cp harbor.yml.tmpl harbor.yml

创建默认配置文件。

vim harbor.yml

修改以下关键配置:

hostname: 192.168.10.106  # 设置为当前主机 IP
harbor_admin_password: Harbor12345  # 管理员密码
# 注释掉 https 相关配置,使用 http 访问

​hostname​​​ 配置为 Harbor 服务器的 IP 地址,​​harbor_admin_password​​ 设置管理员登录密码-。

5. 执行安装

./install.sh

安装脚本会检查 Docker 和 Docker Compose 版本,加载 Harbor 镜像,并启动各组件容器。成功安装后会显示 "Harbor has been installed and started successfully"。

6. 访问与验证

在浏览器中输入 ​​http://192.168.10.106​​​,使用默认用户名 ​​admin​​​ 和配置的密码 ​​Harbor12345​​​ 登录。登录后可创建项目和用户,如创建名为 ​​kubernetes​​​ 的项目和 ​​zhangsan​​ 用户-。

(三)Harbor 客户端应用

1. 配置 Docker 信任私有仓库

在所有 Docker 主机上添加以下配置到 ​​/etc/docker/daemon.json​​:

{
  "insecure-registries": ["192.168.10.106"]
}

该配置告知 Docker 信任指定的私有仓库,避免因证书问题导致操作失败。

重启 Docker 服务使配置生效:

systemctl daemon-reload
systemctl restart docker

2. 登录 Harbor 仓库

docker login 192.168.10.106 -u zhangsan -p Aptech1!

使用创建的用户账号登录 Harbor 仓库,​​-u​​​ 指定用户名,​​-p​​ 指定密码。

3. 推送镜像到 Harbor

# 拉取一个示例镜像
docker pull cirros
# 为镜像打标签,格式为 [仓库地址]/[项目名]/[镜像名]:[版本]
docker tag cirros 192.168.10.106/kubernetes/cirros:v1
# 推送镜像到 Harbor
docker push 192.168.10.106/kubernetes/cirros:v1

​docker tag​​​ 命令为镜像添加 Harbor 仓库的标签,​​docker push​​ 命令将镜像推送到指定仓库和项目-。

4. 从 Harbor 拉取镜像

在另一台主机上重复配置步骤后,使用以下命令拉取镜像:

docker pull 192.168.10.106/kubernetes/cirros:v1

验证镜像是否能从 Harbor 成功拉取。

5. 退出 Harbor 登录

docker logout 192.168.10.106

退出当前 Harbor 仓库登录。

四、总结

本文全面介绍了 Docker Compose 与 Harbor 私有仓库的核心技术与实践操作。Docker Compose 通过 YAML 配置文件和简单命令,实现了多容器应用的高效编排与管理,极大提升了开发和部署效率。Harbor 作为企业级私有仓库,提供了安全、可控的镜像管理解决方案,满足了企业在镜像存储、传输和权限控制等方面的需求。

通过掌握这些技术,开发与运维团队能够构建更加灵活、可靠的容器化应用架构,为现代化软件开发与部署奠定坚实基础。在实际应用中,可根据企业具体需求,进一步优化 Docker Compose 配置和 Harbor 安全策略,确保容器化环境的稳定运行与高效管理。

到此这篇关于Docker Compose 与 Harbor 私有仓库详解的文章就介绍到这了,更多相关Docker Compose 私有仓库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文