docker本地仓库搭建(docker创建本地仓库)

# 简介随着容器技术的普及,Docker 已经成为主流的容器化工具。在企业环境中,使用 Docker 的私有镜像仓库可以有效地管理和分发镜像,确保团队协作更加高效且安全。本文将详细介绍如何搭建一个本地 Docker 仓库,并配置相关服务以支持镜像的推送和拉取。---## 一、搭建环境准备在开始搭建之前,确保以下条件已经满足:1.

操作系统

:Linux(推荐 Ubuntu 或 CentOS)。 2.

已安装 Docker

:确保系统中已安装 Docker,并且版本不低于 18.09。 3.

网络配置

:服务器需要有公网 IP 或内网域名解析支持。运行以下命令检查 Docker 是否已安装: ```bash docker --version ```如果未安装,可以通过以下命令安装 Docker: ```bash sudo apt update && sudo apt install docker.io -y ```---## 二、启动本地 Docker 仓库Docker 官方提供了一个简单的 registry 镜像,我们可以直接基于此镜像启动本地仓库。### 1. 拉取 registry 镜像 ```bash docker pull registry:2 ```### 2. 启动本地仓库 运行以下命令启动本地仓库服务: ```bash docker run -d -p 5000:5000 --restart=always --name registry registry:2 ```- `-d`:后台运行容器。 - `-p 5000:5000`:将宿主机的 5000 端口映射到容器的 5000 端口。 - `--restart=always`:设置容器随系统自动重启。 - `registry:2`:指定使用的镜像。验证是否成功启动: ```bash docker ps ``` 输出应包含类似以下内容: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES registry:2 "/entrypoint.sh /etc…" 1 minute ago Up 1 second 0.0.0.0:5000->5000/tcp registry ```---## 三、配置 Docker 客户端为了让客户端能够与本地仓库交互,需要进行一些额外的配置。### 1. 修改 Docker 配置文件编辑 Docker 配置文件 `/etc/docker/daemon.json`,添加以下内容: ```json {"insecure-registries": ["<你的服务器IP>:5000"] } ```例如,若服务器 IP 为 `192.168.1.100`,则配置如下: ```json {"insecure-registries": ["192.168.1.100:5000"] } ```如果没有该文件,可以直接创建它。### 2. 重启 Docker 服务 ```bash sudo systemctl restart docker ```---## 四、上传和下载镜像### 1. 标记镜像 首先从 Docker Hub 拉取一个测试镜像,然后为其打上本地仓库标签: ```bash docker pull ubuntu:latest docker tag ubuntu:latest 192.168.1.100:5000/my-ubuntu ```### 2. 推送镜像 将标记好的镜像推送到本地仓库: ```bash docker push 192.168.1.100:5000/my-ubuntu ```### 3. 拉取镜像 在另一台机器上拉取刚才推送的镜像: ```bash docker pull 192.168.1.100:5000/my-ubuntu ```---## 五、启用 HTTPS 支持(可选)为了提高安全性,建议为本地仓库启用 HTTPS 支持。### 1. 创建证书 生成自签名证书: ```bash openssl req -newkey rsa:4096 -nodes -sha256 -x509 -days 365 -keyout domain.key -out domain.crt ```### 2. 修改配置文件 编辑容器启动命令,添加 TLS 参数: ```bash docker run -d -p 5000:5000 \--restart=always \--name registry \-v $(pwd)/domain.crt:/certs/domain.crt \-v $(pwd)/domain.key:/certs/domain.key \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \registry:2 ```### 3. 更新客户端配置 修改客户端的 `/etc/docker/daemon.json`,删除 `insecure-registries`,并添加以下内容: ```json {"registry-mirrors": [],"insecure-registries": [] } ```然后重启 Docker 服务: ```bash sudo systemctl restart docker ```---## 六、总结通过以上步骤,我们成功搭建了一个本地的 Docker 仓库,并实现了基本的镜像上传和下载功能。为了进一步提升安全性,建议启用 HTTPS 支持。此外,在生产环境中,还应考虑高可用性和数据持久化等高级配置。希望本文对你有所帮助!

简介随着容器技术的普及,Docker 已经成为主流的容器化工具。在企业环境中,使用 Docker 的私有镜像仓库可以有效地管理和分发镜像,确保团队协作更加高效且安全。本文将详细介绍如何搭建一个本地 Docker 仓库,并配置相关服务以支持镜像的推送和拉取。---

一、搭建环境准备在开始搭建之前,确保以下条件已经满足:1. **操作系统**:Linux(推荐 Ubuntu 或 CentOS)。 2. **已安装 Docker**:确保系统中已安装 Docker,并且版本不低于 18.09。 3. **网络配置**:服务器需要有公网 IP 或内网域名解析支持。运行以下命令检查 Docker 是否已安装: ```bash docker --version ```如果未安装,可以通过以下命令安装 Docker: ```bash sudo apt update && sudo apt install docker.io -y ```---

二、启动本地 Docker 仓库Docker 官方提供了一个简单的 registry 镜像,我们可以直接基于此镜像启动本地仓库。

1. 拉取 registry 镜像 ```bash docker pull registry:2 ```

2. 启动本地仓库 运行以下命令启动本地仓库服务: ```bash docker run -d -p 5000:5000 --restart=always --name registry registry:2 ```- `-d`:后台运行容器。 - `-p 5000:5000`:将宿主机的 5000 端口映射到容器的 5000 端口。 - `--restart=always`:设置容器随系统自动重启。 - `registry:2`:指定使用的镜像。验证是否成功启动: ```bash docker ps ``` 输出应包含类似以下内容: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES registry:2 "/entrypoint.sh /etc…" 1 minute ago Up 1 second 0.0.0.0:5000->5000/tcp registry ```---

三、配置 Docker 客户端为了让客户端能够与本地仓库交互,需要进行一些额外的配置。

1. 修改 Docker 配置文件编辑 Docker 配置文件 `/etc/docker/daemon.json`,添加以下内容: ```json {"insecure-registries": ["<你的服务器IP>:5000"] } ```例如,若服务器 IP 为 `192.168.1.100`,则配置如下: ```json {"insecure-registries": ["192.168.1.100:5000"] } ```如果没有该文件,可以直接创建它。

2. 重启 Docker 服务 ```bash sudo systemctl restart docker ```---

四、上传和下载镜像

1. 标记镜像 首先从 Docker Hub 拉取一个测试镜像,然后为其打上本地仓库标签: ```bash docker pull ubuntu:latest docker tag ubuntu:latest 192.168.1.100:5000/my-ubuntu ```

2. 推送镜像 将标记好的镜像推送到本地仓库: ```bash docker push 192.168.1.100:5000/my-ubuntu ```

3. 拉取镜像 在另一台机器上拉取刚才推送的镜像: ```bash docker pull 192.168.1.100:5000/my-ubuntu ```---

五、启用 HTTPS 支持(可选)为了提高安全性,建议为本地仓库启用 HTTPS 支持。

1. 创建证书 生成自签名证书: ```bash openssl req -newkey rsa:4096 -nodes -sha256 -x509 -days 365 -keyout domain.key -out domain.crt ```

2. 修改配置文件 编辑容器启动命令,添加 TLS 参数: ```bash docker run -d -p 5000:5000 \--restart=always \--name registry \-v $(pwd)/domain.crt:/certs/domain.crt \-v $(pwd)/domain.key:/certs/domain.key \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \registry:2 ```

3. 更新客户端配置 修改客户端的 `/etc/docker/daemon.json`,删除 `insecure-registries`,并添加以下内容: ```json {"registry-mirrors": [],"insecure-registries": [] } ```然后重启 Docker 服务: ```bash sudo systemctl restart docker ```---

六、总结通过以上步骤,我们成功搭建了一个本地的 Docker 仓库,并实现了基本的镜像上传和下载功能。为了进一步提升安全性,建议启用 HTTPS 支持。此外,在生产环境中,还应考虑高可用性和数据持久化等高级配置。希望本文对你有所帮助!

标签列表