Docker私有仓库创建及Docky存储与网络配置(小白的“升级打怪”成长之路)

部署运行你感兴趣的模型镜像

目录

一、Docker私有仓库创建

1、在一台安装Docker私有仓库的主机上添加docker-compose 命令

2、安装docker-ce服务

3、Docker 镜像加速

4、安装Harbor仓库

5、使用脚本安装仓库

6、网站登陆

7、客户端使用Harbor仓库

二、Docky存储与网络配置

1、存储与网络

挂载主机目录

创建数据卷容器

实现负载均衡

2、Docker网络


一、Docker私有仓库创建

1、在一台安装Docker私有仓库的主机上添加docker-compose 命令

192.168.58.171(rocky9)

[root@harbor ~]# rz
rz waiting to receive.**[root@harbor ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  docker-compose
[root@harbor ~]# mv docker-compose /usr/local/sbin/
[root@harbor ~]# chmod +x /usr/local/sbin/docker-compose 

2、安装docker-ce服务

yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce

3、Docker 镜像加速

root@harbor ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://0vmzj3q6.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io",
        "https://mirror.baidubce.com",
        "https://dockerproxy.com",
        "https://mirror.iscas.ac.cn",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru",
        "https://vlgh0kqj.mirror.aliyuncs.com"
    ]
}
​
[root@harbor ~]# systemctl  daemon-reload
[root@harbor ~]# systemctl enable --now docker

4、安装Harbor仓库

[root@harbor ~]# rz
rz waiting to receive.**[root@harbor ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  harbor-offline-installer-v2.7.3.tgz
[root@harbor ~]# tar xf harbor-offline-installer-v2.7.3.tgz 
[root@harbor ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  harbor  harbor-offline-installer-v2.7.3.tgz
[root@harbor ~]# cd harbor/
[root@harbor harbor]# ls
common.sh  harbor.v2.7.3.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
##更改hostname为自己的主机ip

5、使用脚本安装仓库

[root@harbor harbor]# ls
common.sh  harbor.v2.7.3.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@harbor harbor]# ./install.sh 

6、网站登陆

安装完成后网站访问自己的主机ip

密码在配置文件harbor.yml中查看

创建私有仓库

项目——新建项目

7、客户端使用Harbor仓库

在自己的客户端操作

安装好docker服务,并启动后进行操作

192.168.58.170

##加入仓库地址
[root@bogon ~]# vim /etc/docker/daemon.json
{
    "insecure-registries": [
                "192.168.58.171:80"
    ],
    "registry-mirrors": [
        "https://0vmzj3q6.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io",
        "https://mirror.baidubce.com",
        "https://dockerproxy.com",
        "https://mirror.iscas.ac.cn",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru",
        "https://vlgh0kqj.mirror.aliyuncs.com"
    ]
}
​
[root@bogon ~]# systemctl daemon-reload 
[root@bogon ~]# systemctl restart docker
##登陆仓库
[root@bogon ~]# docker login -u admin http://192.168.58.171:80
Password: Harbor12345
​
WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'.
Configure a credential helper to remove this warning. See
https://docs.docker.com/go/credential-store/
​
Login Succeeded
##查看本机镜像并上传和下载镜像
[root@bogon ~]# docker images
REPOSITORY          TAG          IMAGE ID       CREATED             SIZE
alpine              php          865c7c6fdd6d   About an hour ago   31.3MB
alpine              nginx        45e852400cec   2 hours ago         12.9MB
dockerfile1_nginx   latest       0f4e5963a308   21 hours ago        192MB
dockerfile1_php     latest       38b23698b2d9   21 hours ago        470MB
alpine              latest       9234e8fb04c4   3 weeks ago         8.31MB
nginx               latest       2cd1d97f893f   3 weeks ago         192MB
redis               7.2-alpine   30db5eb24b65   4 weeks ago         40.9MB
mysql               5.7          5107333e08a8   20 months ago       501MB
[root@bogon ~]# docker tag alpine:latest 192.168.58.171:80/private/alpine:v1
[root@bogon ~]# docker images
REPOSITORY                         TAG          IMAGE ID       CREATED             SIZE
alpine                             php          865c7c6fdd6d   About an hour ago   31.3MB
alpine                             nginx        45e852400cec   2 hours ago         12.9MB
dockerfile1_nginx                  latest       0f4e5963a308   21 hours ago        192MB
dockerfile1_php                    latest       38b23698b2d9   21 hours ago        470MB
192.168.58.171:80/private/alpine   v1           9234e8fb04c4   3 weeks ago         8.31MB
alpine                             latest       9234e8fb04c4   3 weeks ago         8.31MB
nginx                              latest       2cd1d97f893f   3 weeks ago         192MB
redis                              7.2-alpine   30db5eb24b65   4 weeks ago         40.9MB
mysql                              5.7          5107333e08a8   20 months ago       501MB
[root@bogon ~]# docker push 192.168.58.171:80/private/alpine:v1
The push refers to repository [192.168.58.171:80/private/alpine]
418dccb7d85a: Pushed 
v1: digest: sha256:7b9b6a044d921dfcaea2a843ff19d725948590352198f93cb878fd2c19d7ba3c size: 527

网站访问可以看到仓库里上传了一个镜像

private——private/alpine

模拟下载镜像

[root@bogon ~]# docker rmi 192.168.58.171:80/private/alpine:v1
Untagged: 192.168.58.171:80/private/alpine:v1
Untagged: 192.168.58.171:80/private/alpine@sha256:7b9b6a044d921dfcaea2a843ff19d725948590352198f93cb878fd2c19d7ba3c
[root@bogon ~]# docker images
REPOSITORY          TAG          IMAGE ID       CREATED         SIZE
alpine              php          865c7c6fdd6d   2 hours ago     31.3MB
alpine              nginx        45e852400cec   2 hours ago     12.9MB
dockerfile1_nginx   latest       0f4e5963a308   21 hours ago    192MB
dockerfile1_php     latest       38b23698b2d9   21 hours ago    470MB
alpine              latest       9234e8fb04c4   3 weeks ago     8.31MB
nginx               latest       2cd1d97f893f   3 weeks ago     192MB
redis               7.2-alpine   30db5eb24b65   4 weeks ago     40.9MB
mysql               5.7          5107333e08a8   20 months ago   501MB
[root@bogon ~]# docker pull 192.168.58.171:80/private/alpine:v1
v1: Pulling from private/alpine
Digest: sha256:7b9b6a044d921dfcaea2a843ff19d725948590352198f93cb878fd2c19d7ba3c
Status: Downloaded newer image for 192.168.58.171:80/private/alpine:v1
192.168.58.171:80/private/alpine:v1
[root@bogon ~]# docker images
REPOSITORY                         TAG          IMAGE ID       CREATED         SIZE
alpine                             php          865c7c6fdd6d   2 hours ago     31.3MB
alpine                             nginx        45e852400cec   2 hours ago     12.9MB
dockerfile1_nginx                  latest       0f4e5963a308   21 hours ago    192MB
dockerfile1_php                    latest       38b23698b2d9   21 hours ago    470MB
192.168.58.171:80/private/alpine   v1           9234e8fb04c4   3 weeks ago     8.31MB
alpine                             latest       9234e8fb04c4   3 weeks ago     8.31MB
nginx                              latest       2cd1d97f893f   3 weeks ago     192MB
redis                              7.2-alpine   30db5eb24b65   4 weeks ago     40.9MB
mysql                              5.7          5107333e08a8   20 months ago   501MB

harbor启动命令:docker-compose up -d

二、Docky存储与网络配置

192.168.58.170

1、存储与网络

挂载主机目录

默认会自动创建目录

[root@bogon ~]# docker pull nginx
​
[root@bogon ~]# docker run -itd -v /data:/usr/share/nginx/html nginx:latest
1eeab805c8de45098404eafb4a8bb2c314ed4342a78f1a13cb7a443197ac119a
​
[root@bogon ~]# cd /data/
[root@bogon data]# ls
[root@bogon data]# echo nginx > index.html
[root@bogon data]# docker inspect 1e
##查看镜像的ip,用于下面访问
​
[root@bogon data]# curl 172.17.0.2
nginx
创建数据卷容器

docker run -itd --volumes--form hopeful_euler nginx:latest中hopeful_euler是关联镜像容器的names

[root@bogon data]# docker ps
CONTAINER ID   IMAGE               COMMAND                   CREATED         STATUS          PORTS                                 NAMES
1eeab805c8de   nginx:latest        "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes    80/tcp                                hopeful_euler
a63420226829   dockerfile1_nginx   "/docker-entrypoint.…"   22 hours ago    Up 48 minutes   0.0.0.0:80->80/tcp, [::]:80->80/tcp   dockerfile1_nginx_1
2f7cdb42f221   dockerfile1_php     "docker-php-entrypoi…"   22 hours ago    Up 48 minutes   9000/tcp                              dockerfile1_php_1
3050662d2d77   mysql:5.7           "docker-entrypoint.s…"   22 hours ago    Up 48 minutes   3306/tcp, 33060/tcp                   dockerfile1_mysql_1
[root@bogon data]# docker run -itd --volumes-from hopeful_euler nginx:latest
83d994977bf9dfc0880f15f4ddf2e6aad4d9192b43b84cb71e255cb4a23d4593
​
[root@bogon data]# docker ps
CONTAINER ID   IMAGE               COMMAND                   CREATED          STATUS          PORTS                                 NAMES
83d994977bf9   nginx:latest        "/docker-entrypoint.…"   29 seconds ago   Up 28 seconds   80/tcp                                mystifying_sanderson
1eeab805c8de   nginx:latest        "/docker-entrypoint.…"   6 minutes ago    Up 6 minutes    80/tcp                                hopeful_euler
a63420226829   dockerfile1_nginx   "/docker-entrypoint.…"   22 hours ago     Up 50 minutes   0.0.0.0:80->80/tcp, [::]:80->80/tcp   dockerfile1_nginx_1
2f7cdb42f221   dockerfile1_php     "docker-php-entrypoi…"   22 hours ago     Up 50 minutes   9000/tcp                              dockerfile1_php_1
3050662d2d77   mysql:5.7           "docker-entrypoint.s…"   22 hours ago     Up 50 minutes   3306/tcp, 33060/tcp                   dockerfile1_mysql_1
[root@bogon data]# curl 172.17.0.3
nginx
##可以看到,通过访问关联的ip也能访问到172.17.0.2的挂载文件
实现负载均衡

设计思路:通过提前配置好代理的容器的配置文件,里面配好负载均衡,在启动proxy容器时通过本地挂载的形式,使用配置好的配置文件实现负载均衡功能

[root@bogon data]# docker cp 83:/etc/nginx/conf.d/default.conf ./
Successfully copied 3.07kB to /data/./
[root@bogon data]# ls
default.conf  index.html
[root@bogon data]# vim default.conf 

更改成代理

[root@bogon data]# docker run -itd --name=proxy -v /data/default.conf:/etc/nginx/conf.d/default.conf nginx:latest 
3f0998ef3be0d03bbcc4a8e56e7986e9d5b46d9dd96d8202604a9f1455d49aeb
[root@bogon data]# curl 172.17.0.4
nginx

2、Docker网络

查看现有docker 网络

[root@bogon data]# docker network ls
NETWORK ID     NAME                              DRIVER    SCOPE
69bf9d36028d   bridge                            bridge    local
3190c092bcfb   dockerfile1_discuz-net            bridge    local
058843202af0   host                              host      local
f9bd13151aaa   none                              null      local
e491e22154a6   redis-cluster_redis-cluster-net   bridge    local

创建网络

[root@bogon data]# docker network create mynic --driver bridge
a951bbcb7501ac8232c4ca23337cb6eac877a7231a7a80751b327c70a0a2964c
[root@bogon data]# docker network ls
NETWORK ID     NAME                              DRIVER    SCOPE
69bf9d36028d   bridge                            bridge    local
3190c092bcfb   dockerfile1_discuz-net            bridge    local
058843202af0   host                              host      local
a951bbcb7501   mynic                             bridge    local
f9bd13151aaa   none                              null      local
e491e22154a6   redis-cluster_redis-cluster-net   bridge    local
[root@bogon data]# docker network inspect mynic
[
    {
        "Name": "mynic",
        "Id": "a951bbcb7501ac8232c4ca23337cb6eac877a7231a7a80751b327c70a0a2964c",
        "Created": "2025-08-07T22:06:30.318365618+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
​
​

看到感觉有帮助的朋友,劳烦动动发财的小手,给博主点各赞

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值